通过多个 Laravel 5 安装跨子域共享身份验证会话
Posted
技术标签:
【中文标题】通过多个 Laravel 5 安装跨子域共享身份验证会话【英文标题】:Share auth sessions across sub domains with multiple Laravel 5 installations 【发布时间】:2015-12-17 08:54:30 【问题描述】:我有两个子域,每个子域都安装了自己的 Laravel 5.1 并共享同一个数据库。
app.project.dev
用户可以在其中编辑他们的项目
*.project.dev
其中*
是用户名
我正在创建一个网站构建器,所以当用户在*.project.dev
查看他们的网站时,我想检查他们是否仍然登录到app.project.dev
并显示一些额外的功能。
我尝试在两个实例上将'domain' => .project.dev
更改为config/session.php
并获得不同的会话cookie。我认为这仅在不同的子域使用相同的安装时才有效。
【问题讨论】:
我建议使用数据库方法解决方案,因为两个项目共享同一个数据库。只需将用户标记为已登录相应的表,当您想要显示更多信息时,检查用户的状态,然后显示额外的功能。 听起来可行。只是出于好奇,如果他们没有自己注销但会话超时,是否有办法告诉数据库将他们标记为已注销? 您可以在会话到期时触发事件以将用户的状态更改为已注销。 实际上,我认为我确实需要 cookie 会话,因为 *.project.dev 是公开的,我需要将 */username 与匹配会话匹配,这样只有他们才能看到额外的功能。 谢谢,我刚刚读到了。 【参考方案1】:我从未尝试过,但有一个想法:将两个 lavarel 安装配置为使用相同的 storage
目录。这是默认保存会话的地方。
否则,可以使用custom session driver,可能由您的数据库支持。
【讨论】:
还没有,这是我要做的最后一个。另外,我现在正在将 JTW auth 用于管理区域,并希望看看这是否有助于跨域会话。以上是关于通过多个 Laravel 5 安装跨子域共享身份验证会话的主要内容,如果未能解决你的问题,请参考以下文章