diff --git a/assets/config.php b/assets/config.php index 8c504d63..6b824c11 100644 --- a/assets/config.php +++ b/assets/config.php @@ -88,6 +88,10 @@ return [ 'storage_to_config_map' => [ // Used by the TenantConfig feature // 'paypal_api_key' => 'services.paypal.api_key', ], + 'identification' => [ + 'header' => 'X-Tenant', // Can be anything, but should really start with "X-", + 'query_parameter' => '_tenant' + ], 'home_url' => '/app', 'queue_database_creation' => false, 'migrate_after_creation' => false, // run migrations after creating a tenant diff --git a/src/Middleware/InitializeTenancyByRequestData.php b/src/Middleware/InitializeTenancyByRequestData.php index 8d52c70f..e92cc76d 100644 --- a/src/Middleware/InitializeTenancyByRequestData.php +++ b/src/Middleware/InitializeTenancyByRequestData.php @@ -46,11 +46,14 @@ class InitializeTenancyByRequestData return; } + $header = config('tenancy.identification.header'); + $query = config('tenancy.identification.query_parameter'); + $tenant = null; - if ($request->hasHeader('X-Tenant')) { - $tenant = $request->header('X-Tenant'); - } elseif ($request->has('_tenant')) { - $tenant = $request->get('_tenant'); + if ($request->hasHeader($header)) { + $tenant = $request->header($header); + } elseif ($request->has($query)) { + $tenant = $request->get($query); } elseif (! in_array($request->getHost(), config('tenancy.exempt_domains', []), true)) { $tenant = explode('.', $request->getHost())[0]; }