我不是一个出色的开发人员,所以我想我遇到的问题对我来说太大了。
我有一个项目,其中当前语言有不同的子域。当我登录用户时,它只为当前子域记录。因此,当我在“en.Aproject.com”登录,然后转到“de.Aproject.com”时,用户将不会登录。他们不共享 session 。我已经尝试修改 app/sessions.php 中的“域”=> null。但是当我在这里更改值时,登录根本不起作用。然后每次在数据库中创建一个新的 session 行,而 Laravel 似乎无法识别它们。
当前域是否以某种方式保存在 session 标识符中?是否可以将一个 session 用于不同的域?我发现了一些关于 OAuth 和单点登录的内容,但我自己无法处理。
我正在考虑(当登录并且凭据正确时)通过 Ajax 调用脚本,该脚本应该为所有需要的域登录用户。但我将不得不为注销做同样的事情......而且我可能会有很多域。该项目将有一个基本页面和几个子项目(均使用不同的语言)。像这样
主项目网
en.mainproject.com
de.mainproject.com
...
Aproject.com
en.Aproject.com
德.Aproject.com
...
项目网
en.Bproject.com
de.Bproject.com
...
因此,让用户登录以喜欢 20 个不同的页面并创建 20 个 session 会感觉不对……只为所有这些页面使用一个 session 会感觉更好。
好的,我希望你理解这个问题,并且有人已经遇到了同样的问题并找到了解决方案。谢谢!!!!!!!!问候。格蒂
背景信息.. 我使用的是 Laravel 4.2
现在我只是尝试了一些东西,也许它可以帮助某人。实际上第 2 点对我来说很奇怪(见下文)
我展示了这三件事:
session ::getId()
身份验证::getName()
var_dump(Session::all())
我将它们显示在“de.Aproject.com”上。我在这里登录。
我在“en.Aproject.com”上显示它们......我仍然注销的地方(我想修复:D)
最佳答案
由于默认的 Laravel 身份验证系统使用 cookie 来管理 session ,因此您实际上需要在要使用的每个子域上登录用户。为避免这种情况,您可以使用另一个 session 驱动程序,如数据库。
关于session - Laravel 多域 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28070849/