Laravel5.3多域认证

时间:2016-09-06 12:52:49

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

  • PHP 7.0.10-2
  • 的nginx / 1.10.0
  • Laravel Framework版本5.3.6

嘿伙计们,我试图用几个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和一个通用模型。

1 个答案:

答案 0 :(得分:0)

Finaly!

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

加密

所以我将会话cookie添加到$除了数组: 的 \应用\ HTTP \中间件\ EncryptCookies

 protected $except = [
        'laravel_session'
    ];