Laravel5.3 多域认证
Laravel5.3 multi-domain auth
- PHP 7.0.10-2
- nginx/1.10.0
- Laravel 框架版本 5.3.6
大家好,我正在尝试使用多个 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'
];
- PHP 7.0.10-2
- nginx/1.10.0
- Laravel 框架版本 5.3.6
大家好,我正在尝试使用多个 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'
];