繁体   English   中英

如何为现有用户更改会话cookie域

[英]How to change session cookie domain for existing users

我的PHP Web应用程序目前将其会话cookie域设置为example.com 我想将其更改为.example.com 对于新访问者, ini_set('session.cookie_domain', '.example.com')可以使用。 对于在进行此更改之前已拥有PHPSESSID cookie的访问者,域保持旧值。 如何在不要求当前用户删除其Cookie的情况下更改会话cookie上的域?

  • 我不能使用JavaScript来更新cookie,因为出于安全原因它是HTTPOnly。
  • 删除服务器上的会话不会重置整个cookie,它只会更新cookie值(保持域名相同)。
  • 现代浏览器会在重新启动时保留会话,因此即使cookie在浏览器会话结束时设置为过期,浏览器会话也永远不会结束。

我能想到的唯一可能性是将cookie设置为过去过期,然后重定向以获取新的cookie。 但我不知道哪些访问者的cookie域设置不正确。

在开始会话之前设置新的session_name() 这样,cookie的名称就会改变,任何旧的cookie都会被忽略。 只会发送新的Cookie并为会话工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM