php - Chrome 切换不同的设备 View 会破坏 session

标签 php google-chrome

我正在使用 PHP 作为后端技术开发网站管理 cp,同时我正在解决一些响应问题。

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

兑现未被禁用。

session id 和我看到的一样

我真的无法理解它!

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

或者我做错了什么?

最佳答案

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

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

你可以这样试试:

echo $_SERVER['HTTP_USER_AGENT'];

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

至于基于堆栈溢出和许多其他资源的 session 最佳实践,最好将 $_SERVER['HTTP_USER_AGENT'] 保存在 session 中,稍后在登录后检查 session 表示登录用户正是来自该浏览器的用户

这就是我正在做的,我正在检查用户登录 session 和用户代理 session

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

关于php - Chrome 切换不同的设备 View 会破坏 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45532678/

相关文章:

google-chrome - 私有(private)模式是否在流行的浏览器上启用 "Do Not Track"(DNT)?

javascript - Chrome : Debug who changes document. 位置.hash

javascript - 何时使用 ajax.load() 或 jquery.ajax()

php - 使用 Carbon 将日期转换为另一种格式

php - 在 exec() 中打印反斜杠

python - PHP 的 error_get_last() 函数的 Python 替代品是什么?

php - Laravel - 如何传递变量来重置密码模板?

javascript - 使用 XHR 和脚本 src 的区别

javascript - 从 JavaScript 以编程方式打开 Safari/Google Chrome 开发者工具

windows - 可以使用 Delphi 为 Chrome 创建扩展吗?