diff --git a/app/Http/Middleware/UniversalTenancy.php b/app/Http/Middleware/UniversalTenancy.php new file mode 100644 index 0000000..59165c9 --- /dev/null +++ b/app/Http/Middleware/UniversalTenancy.php @@ -0,0 +1,31 @@ +getHost(), $centralDomains)) { + // 如果是中央域名,不進行租戶初始化,直接繼續往下執行 (使用預設資料庫) + return $next($request); + } + + // 如果不是中央域名,嘗試透過域名初始化租戶 + // 若找不到租戶,InitializeTenancyByDomain 會拋出異常 (這正是我們要的,避免未授權訪問) + return app(InitializeTenancyByDomain::class)->handle($request, $next); + } +} diff --git a/bootstrap/app.php b/bootstrap/app.php index 06ccc47..c194374 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -15,7 +15,7 @@ return Application::configure(basePath: dirname(__DIR__)) ) ->withMiddleware(function (Middleware $middleware): void { $middleware->web(append: [ - \Stancl\Tenancy\Middleware\InitializeTenancyByDomainOrSubdomain::class, + \App\Http\Middleware\UniversalTenancy::class, \App\Http\Middleware\HandleInertiaRequests::class, ]);