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

时间:2017-08-06 13:51:07

标签: php google-chrome

我正在使用PHP作为后端技术的网站admin cp工作,同时我正在解决一些响应问题。

所以我登录管理面板但是当我切换不同的设备,如Galaxy,Nexus Iphone甚至响应模式来测试我已经完成的响应式外观或修复时,我发现自己已经注销并重定向到登录页面我也看到了在登录前不应该出现的东西,例如管理员菜单,但是它无法访问,换句话说它已经登录了一半而没有登录。

兑现未被禁用。

会话ID与我能看到的相同。

我真的无法理解它!

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

或者我做错了什么?

1 个答案:

答案 0 :(得分:10)

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

  • 我的假设是设备是独立的 彼此之间是完全正确的,因为每个设备都有不同 HTTP_USER_AGENT

你可以这样试试:

echo $_SERVER['HTTP_USER_AGENT'];

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

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

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

导致问题的原因是当我切换不同的设备时,HTTP_USER_AGENT会发生变化,因此会话不匹配,因此我会自动退出。