嘿伙计们,我试图用几个laravel应用程序进行跨域认证。
在config/session.php
:
'connection' => 'default',
...
'domain' => env('SESSION_DOMAIN', '.baner-platform.local'),
SESSION_DOMAIN未在.env中设置,因此它使用来自php config的值。
在.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"
当在域上进行im loggin并在子域上刷新页面时,它会松散域上的会话,反之亦然。
对于这两个应用程序,我使用一个DB和一个通用模型。
答案 0 :(得分:0)
Finaly!
默认情况下,所有laravel cookie都由midlware \App\Http\Middleware\EncryptCookies::class
所以我将会话cookie添加到$除了数组: 的 \应用\ HTTP \中间件\ EncryptCookies 强>
protected $except = [
'laravel_session'
];