我正在使用系统登录使用子域的多个子域的站点。我有这个系统的开发和实时版本,但是我遇到了奇怪的行为。
所以,设置是我有以下内容:
开发环境:
直播环境:
作为登录过程的一部分,我使用以下行来设置cookie:
setcookie("LoggedIn", 1, 0,'/','.mydomain.com');
一切正常,我可以登录一次并访问所有内容,但是我想限制它,这样如果我登录测试系统,那么我没有登录到实时系统,反之亦然。
我希望解决方案是:
setcookie("LoggedIn", 1, 0,'/','.test.mydomain.com');
和
setcookie("LoggedIn", 1, 0,'/','.live.mydomain.com');
取决于系统。
但是,使用此方法我可以独立登录test.mydomain.com和live.mydomain.com,但我无法登录子子域(sub1.test.mydomain.com,sub2。等)。
我做错了什么?
答案 0 :(得分:0)
可能是因为same-origin-policy。请仔细阅读。
答案 1 :(得分:0)
我完全同意您的期望,子域名cookie应优先于顶级域名,但在大多数网络框架中,您不能拥有重复的Cookie ID,因此即使您将Cookie域设置为顶级域名,子域名仍然有效,所以我认为最安全的解决方案是你应该尝试更改该特定域的cookie ID,通常我把它作为变量放在应用程序配置中