【问题标题】:Laravel5.3 multi-domain authLaravel5.3 多域认证
【发布时间】:2017-01-13 22:34:28
【问题描述】:
  • 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"

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

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

【问题讨论】:

    标签: php laravel session single-sign-on laravel-5.3


    【解决方案1】:

    终于!

    默认情况下,所有 laravel cookie 都由 midlware \App\Http\Middleware\EncryptCookies::class 加密

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

     protected $except = [
            'laravel_session'
        ];
    

    【讨论】:

      猜你喜欢
      • 2014-03-24
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 2011-05-17
      相关资源
      最近更新 更多