单一登录同一服务器上的子域

时间:2017-08-02 18:53:25

标签: laravel laravel-5 laravel-5.3

如何使用两个子域实现单点登录?

  • app1.domain.com
  • app2.domain.com

我已经在本地计算机上使用Apache创建了虚拟主机,因此我有两个Laravel项目:app1.domain.com和app2.domain.com

我希望当我登录子域时,应该使用相同的会话记录其他子域

我尝试配置.env文件和config / session.php:

APP1

.ENV

APP_KEY=base64:qs1+/YjtqEPjS3HUYC/PaDDQk51gWY0H4iw6eAG0RF8=

APP_URL=http://app1.domain.com/

SESSION_DOMAIN=.domain.com

配置/ session.php文件

'driver' => env('SESSION_DRIVER', 'file'),

'domain' => env('SESSION_DOMAIN', '.domain.com'),

APP2

.ENV

APP_KEY=base64:qs1+/YjtqEPjS3HUYC/PaDDQk51gWY0H4iw6eAG0RF8=

APP_URL=http://app2.domain.com/

SESSION_DOMAIN=.domain.com

配置/ session.php文件

'driver' => env('SESSION_DRIVER', 'file'),

'domain' => env('SESSION_DOMAIN', '.domain.com'),

这不起作用,当一个子域被记录而另一个子域未登录时,如果有Laravel 5.4的任何软件包,如何使用Laravel实现SSO?

1 个答案:

答案 0 :(得分:0)

您是否尝试将“会话文件位置”指向同一目录(在config / session.php中)?

您可能需要在其中一个配置文件中对目录进行硬编码。

app1 :config / session.php

'files' => storage_path().'/framework/sessions',

app2 :config / session.php

'files' => /path/to/app1/storage/framework/sessions',

另一种选择可能是使用数据库驱动程序并指向同一个表。