【问题标题】:Chrome Dev Tools Device Mode & CookiesChrome 开发工具设备模式和 Cookie
【发布时间】: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


【解决方案1】:

我在设备模式上遇到了同样的问题。

/craft/config/general.php 中设置以下内容为我解决了这个问题。

'requireMatchingUserAgentForSession' => false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-06
    • 2019-08-25
    • 2020-03-19
    • 2018-04-17
    • 2018-06-24
    • 1970-01-01
    • 2020-12-04
    • 2023-03-18
    相关资源
    最近更新 更多