Laravel5.3 多域认证

Laravel5.3 multi-domain auth


大家好,我正在尝试使用多个 laravel 应用程序进行跨域身份验证。

config/session.php中:

'connection' => 'default',
...
'domain' => env('SESSION_DOMAIN', '.baner-platform.local'),

SESSION_DOMAIN 未在 .env 中设置,因此它使用来自 php 配置的值。

.env中:

SESSION_DRIVER=redis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

当我在 redis-cli 中打开域和子域页面时,我看到 2 个会话密钥:

127.0.0.1:6379> keys *
1) "laravel:2GDEUYrVVIUhWbAG2PfaTQF5Hnotd6QYIvzG0Oo9"
2) "laravel:aNsivaryHAGm7TYXEIkofHGVWkJYCCdwdtczyjUn"

当我登录域并在子域上刷新页面时,它会丢失域上的会话,反之亦然。

对于这两个应用程序,我使用一个数据库和一个通用模型。

芬利!

默认情况下,所有 laravel cookie 都被恶意软件加密 \App\Http\Middleware\EncryptCookies::class

所以我将会话 cookie 添加到 $except 数组: \App\Http\Middleware\EncryptCookies

 protected $except = [
        'laravel_session'
    ];