Chrome 切换不同设备视图会破坏会话

2022-08-30 22:25:31

我正在使用PHP作为后端技术进行网站管理员cp,同时我正在修复一些响应问题。

所以我登录到管理面板但是当我切换不同的设备(例如Galaxy,Nexus iphone甚至响应模式)以测试响应式外观或我已完成的修复程序时,我发现自己已注销并重定向到登录页面,并且我还看到了登录前不应该出现的内容,例如管理菜单,但它无法访问换句话说,它一半登录,一半不登录。

兑现不是禁用的。

会话ID是相同的,我可以看到它。

我真的无法理解它!

这在浏览器中是正常的吗,这意味着每个设备都独立于整个浏览器?

或者我做错了什么?


答案 1

最后,经过几个小时的审查我的代码和调试每一件事,我想出了一个解决方案:

  • 我在设备彼此独立的问题中的假设是相当正确的,因为每个设备都有不同的HTTP_USER_AGENT

你可以像这样尝试:

echo $_SERVER['HTTP_USER_AGENT'];

在浏览器上切换不同的设备并查看结果。

因此,对于基于堆栈溢出和许多其他资源的会话最佳实践,最好保存在会话中,然后在登录后检查会话,这意味着登录的用户正是来自该浏览器的用户。$_SERVER['HTTP_USER_AGENT']

这就是我正在做的事情,我正在检查用户登录会话和用户代理会话

这就是导致问题的原因,所以当我切换不同的设备时,这些设备会发生变化,因此会话不匹配,因此我会自动注销。HTTP_USER_AGENT


答案 2

推荐