我正在尝试在具有许多子域的主机上使用Laravel . 只有一个子菜单会运行Laravel的应用程序,但我想通过PHP本机会话分享一些东西(比如当前用户) .
我编辑了Laravel的会话配置以使用子域,更改域值:
'cookie' => 'mydomain_session',
'domain' => '.mydomain.com',
在Laravel未运行的另一个子域中,我正在尝试以这种方式访问会话:
session_name("mydomain_session");
session_set_cookie_params(0,'/','.mydomain.com',false,true);
session_start();
但它不起作用,如果我尝试回显$ _SESSION变量是空的 .
最奇怪的是,如果我尝试回显session_id(),它们在两个子域中都是相同的 .
此外,如果我在第三个子域中设置相同的脚本,它与其他非laravel子域共享会话没有问题 .
那么我做错了什么?我错过了一些东西,或者Laravel没有以普通方式管理本机PHP会话?
任何帮助表示赞赏!
2 回答
或者Laravel没有以普通方式管理本机PHP会话?
正确 .
把它放到routes.php文件的顶部:
你会看到Laravel将会话放入一个多维数组中 .
对我来说,"foo" Session 包含在
$_SESSION['_sf2_attributes']
中您应该切换到JWT(Json Web令牌) . 由于他们的设计,他们不会遇到这个问题 .
Probaly查看这篇文章了解更多信息:https://auth0.com/blog/2014/01/27/ten-things-you-should-know-about-tokens-and-cookies/