首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel会话-不想共享域和子域会话

问Laravel会话-不想共享域和子域会话
EN

Stack Overflow用户
提问于 2015-12-21 15:07:30
回答 1查看 489关注 0票数 3

我有一个域名,并从主域创建了一个子域,说www.example.com和dev.example.com。www.example.com是生产域,dev.example.com是开发环境。

然后我从同一个repo克隆了两个项目,但将它们放在不同的文件夹中。在www.example.com文件夹.env文件中,我已经将域会话设置为example.com。这意味着在浏览器中,当我从www.example.com或example.com访问时,它将能够共享该域。在dev.example.com中,我设置的session_domain是dev.example.com。

现在我面临的问题是,当我访问www.example.com时,它会生成一个名为.example.com的laravel_session域名。有了前面的点,它似乎可以共享到子域。当我访问dev.example.com并登录facebook时,它似乎会查找.example.com域会话,而不是在dev.example.com中创建的会话。

如果我删除www.example.com中的laravel_session,我就可以在我的dev.example.com中登录facebook,或者我清除了所有的cookie/会话,我也可以在我的dev.example.com中登录facebook。

我需要做什么才能不让它在sub domian中共享会话?如果我设置了不共享,当用户在浏览器中键入example.com和www.example.com时,域名是否可以共享?

当在facebook登录时遇到invalidstateException时,可以通过清除所有cookie/会话来解决。但我认为要求用户自行清除cookie浏览器是不正确的。对此有什么解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-22 02:59:56

您只需要在dev.example.com中使用一个不同名称的会话cookie。

代码语言:javascript
复制
if ( $_SERVER['HTTP_HOST'] === 'dev.example.com' )
{
    //The default session name is PHPSESSID,
    //so if we use a different one, they don't collide.
    session_name('DEVSESSIONID');
}
session_start();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34390490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档