Laravel 登录一次即可登录多个子域

ami*_*izi 6 php apache authentication laravel

我们的网站是在 apache 服务器上使用 laravel 7 创建的。我们有一个具有 3 个不同子域的应用程序。例如:

mainwebsite.com

products.mainwebsite.com

customers.mainwebsites.com

suppliers.mainwebsite.com
Run Code Online (Sandbox Code Playgroud)

子域已这样设置:

Route::domain('supplier.mainwebsite.com')->group(function () {
      Route::get('/dashboard', 'ExampleController@show')->name('example-show')->middleware('auth','isActive','role:supplier|admin|producer');
});
Run Code Online (Sandbox Code Playgroud)

我们使用 spatie 权限包来检查角色。

现在的问题是身份验证。如果用户登录到 sellers.mainwebsite.com,当他们访问 mainwebsite.com 时,他们应该再次登录。我们希望他们在所有子域中登录。因为有些页面相似,但根据用户的角色显示不同的内容。例如,仪表板位于 mainwebsite.com/dashboard 中,但如果您已登录到 sellers.mainwebsite,并且有一个转到仪表板的链接,该链接会转到 mainwebsite.com.dashboard,因为子域不同,他们应该再次登录。我们希望他们保持登录状态。

我感谢您的帮助。

问候,

Kam*_*aul 6

尝试这个

config/session.php

'domain' => env('SESSION_DOMAIN', null),
Run Code Online (Sandbox Code Playgroud)

'domain' => env('SESSION_DOMAIN', '.mainwebsite.com'),
Run Code Online (Sandbox Code Playgroud)

或在 .env 中

SESSION_DOMAIN='.mainwebsite.com',
Run Code Online (Sandbox Code Playgroud)