Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session Laravel多域会话_Session_Authentication_Laravel_Cross Domain_Subdomain - Fatal编程技术网

Session Laravel多域会话

Session Laravel多域会话,session,authentication,laravel,cross-domain,subdomain,Session,Authentication,Laravel,Cross Domain,Subdomain,我不是一个优秀的开发人员,所以我想我遇到的问题对我来说太大了 我有一个项目,其中我有当前语言的不同子域。当我登录一个用户时,它只为当前子域登录。因此,当我在“en.Aproject.com”登录,然后转到“de.Aproject.com”时,用户将不会登录。他们不共享会话。我已经尝试在app/sessions.php中修改'domain'=>null。但是当我在这里更改值时,登录根本不起作用。然后,每次在DB中创建新的会话行时,Laravel似乎都无法识别它们 当前域是否以某种方式保存在会话标识

我不是一个优秀的开发人员,所以我想我遇到的问题对我来说太大了

我有一个项目,其中我有当前语言的不同子域。当我登录一个用户时,它只为当前子域登录。因此,当我在“en.Aproject.com”登录,然后转到“de.Aproject.com”时,用户将不会登录。他们不共享会话。我已经尝试在app/sessions.php中修改'domain'=>null。但是当我在这里更改值时,登录根本不起作用。然后,每次在DB中创建新的会话行时,Laravel似乎都无法识别它们

当前域是否以某种方式保存在会话标识符中?是否可以为不同的域使用一个会话?我发现了一些关于OAuth和Single sign-on的东西,但我自己无法处理

我在考虑(当登录并且凭据正确时)通过Ajax调用脚本,该脚本应该为所有需要的域登录用户。但我也必须为注销做同样的事情。。我可能会有很多域名。该项目将有一个基本页面和几个子项目(都使用不同的语言)。像这样

mainproject.com

en.mainproject.com

de.mainproject.com

Aproject.com

en.Aproject.com

de.Aproject.com

Bproject.com

en.Bproject.com

de.Bproject.com

因此,登录用户以喜欢20个不同的页面并创建20个会话是不对的。。。对所有人来说,只使用一个会话会感觉更好

好的,我希望你理解这个问题,有人已经有了同样的问题并找到了解决方案。谢谢问候。格蒂


背景信息。。我使用的是Laravel4.2

现在我只是尝试了一些东西,也许对某人有帮助。事实上,第2点对我来说很奇怪(见下文)

我展示了这三件事:

会话::getId()

Auth::getName()

var\u dump(Session::all())

我把它们显示在“de.Aproject.com”上。我在这里登录了

我把它们显示在“en.Aproject.com”上。。。我仍然注销的位置(我要修复:D)

  • Session::getId()的值在两侧都不同。我想这就是问题所在,他们应该分享同样的东西
  • Auth::getName()的值在两侧都是相同的(登录--U 82E5D2C56BDD00811318F0CF078B78BFC)。我不明白。为什么第二页在我未登录时有此值
  • Session::all()的值为[“login”-U 82E5D2C56BD0811318F0CF078B78BFC”]=>string(17)test@test.de“在第一个站点上,第二个站点是空的。没错

  • 由于默认的Laravel身份验证系统使用cookies来管理会话,因此您实际上需要在要使用的每个子域上登录用户。为了避免这种情况,您可以使用另一个会话驱动程序,如数据库