【发布时间】:2016-08-02 19:07:06
【问题描述】:
在使用 Chrome 的设备模式测试网站时,我遇到了一些 cookie 问题。
设置
我正在使用 Vagrant 在本地计算机上构建我的网站。该站点使用内容管理系统 (Craft),并且我的站点处于离线模式,需要我登录到 CMS 控制面板才能查看该站点。如果我没有登录,将显示一个即将推出的页面。
问题
在正常测试中一切正常。我登录到 Craft 控制面板,然后在 localhost:1111 的不同选项卡中打开主页。
当我切换到device mode,刷新页面时出现问题。我被带到“即将推出”页面。如果我转到登录工艺控制面板的选项卡,我会收到已注销的通知。
查看域的 cookie 登录控制面板时,我看到 3 个 cookie,其中包含一些会话数据,并在查看网站的选项卡上(在正常查看模式下,而不是设备模式下)。一旦我切换到设备模式(并刷新),其中一个 cookie 就会被删除,这会导致“即将推出”页面。
cookies 具有类似的格式:
- HASHhashHASHhash
- HASHhashHASHhash用户名
刷新时删除前者。
为什么在设备模式下刷新站点会导致其中一个 cookie 被删除?
【问题讨论】:
-
如果没有看到 Craft 本身在会话管理方面做了什么,就很难确定。 可能他们正在检查 UA 以确保请求伪造的安全性。因此,刷新可能会导致 Craft 看到另一个设备类型的模拟 UA,这会使他们在下一次请求时使 cookie 无效。通常在我工作过的任何系统中,这种事情都不是问题。所以我认为它更具体地说明 Craft 在直接的 DevTools 问题上更加安全。
-
好点。我确实尝试打开一个选项卡,切换到设备模式,登录到控制面板,然后在设备模式下打开另一个选项卡以访问该站点。如果我没记错的话,这似乎有效。烦人但可以理解。
标签: cookies google-chrome-devtools