【问题标题】:What is causing this unexpected behavior in my Chrome cookies?是什么导致我的 Chrome cookie 出现这种意外行为?
【发布时间】:2020-04-15 07:24:39
【问题描述】:

我正在使用一个名为“token”的 cookie 来保存一个 base64 编码的字符串。我会通过删除该 cookie 来注销。我的注销在 Chrome 中停止工作,当我刷新页面时,我删除的 cookie 会再次出现。

为了更好地理解问题,我创建了一个最小的 HTML 页面……但我变得更加困惑。我需要一些帮助。我的期望是简单的 PHP 行会创建一个“令牌”cookie,如果存在的话,会覆盖前一个。相反,我看到的是两个cookie,都名为“token”;登录原始页面的剩余部分,由该页面创建的。删除“令牌”cookie 的 javascript 会删除新的 cookie,但会保留原始 cookie,即使多次单击“注销”也是如此。

    <?php
    setcookie("token", "MakeMeDisappear", time()+3600);
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Logout</title>
    <script>
    function showCookie() {
        document.getElementById("problem").innerHTML=document.cookie;
    }
    function logout() {
        document.cookie = 'token=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        showCookie();
    }
    </script>
    </head>
    <body>
    <h1>Logout Test</h1>
    <p><a href="javascript:void(0)" onclick="logout()">Logout</a></p>
    <pre id="problem"></pre>
    <script>
    showCookie();
    </script>
    </body>
    </html>

我最初在输出中看到:

token=MakeMeDisappear; token=ftBIUXQJnezKeaTycgh_rEBK9PBq7IhT7t50v5CkaV2Ws9qp5H9Agx-P6sUPnc9Bq90PGm9S4P-6g5AQJNGO3vhO1EuBpdOnJHXnmkSijq79ISOKVkkhSHQAo_7XSFtT4gHTBHA4q1MMN1VwKOO3iF-pbsUbxnwjG2VtNlAdOnUu2AS6I163tx_CsoxJuQCaR4Dft3y-HLyYwfL1VkZoowU_JelzHLg_wGfLQf5bNskuxAn-3uaddsyCiDjXOqKsSIAy5lLWFYgQPnIHgggH0hjoeJjoLni3X1UShCalaD3IlEXjrul3aZydw3CCTLZKm8Gl-9wv4Rp1vBBZ2FOrFmmlIcZcbUB5xSfp9x_A1s_ftUmARKw_EAJo0Y_s8iAXpoYsXoo2ihqews4m9NUopdN4FjeEV4jB-vJFF4O3JGUHWPmWpy-98bHcHPstv3uKI05EvdtnPXeG4fN3OdMrpuj5WEltpCKbBaRCLI-kqPjyHrzHydJTJ7WW4vVjRSIO

当我点击Logout 链接时,我会看到:

token=ftBIUXQJnezKeaTycgh_rEBK9PBq7IhT7t50v5CkaV2Ws9qp5H9Agx-P6sUPnc9Bq90PGm9S4P-6g5AQJNGO3vhO1EuBpdOnJHXnmkSijq79ISOKVkkhSHQAo_7XSFtT4gHTBHA4q1MMN1VwKOO3iF-pbsUbxnwjG2VtNlAdOnUu2AS6I163tx_CsoxJuQCaR4Dft3y-HLyYwfL1VkZoowU_JelzHLg_wGfLQf5bNskuxAn-3uaddsyCiDjXOqKsSIAy5lLWFYgQPnIHgggH0hjoeJjoLni3X1UShCalaD3IlEXjrul3aZydw3CCTLZKm8Gl-9wv4Rp1vBBZ2FOrFmmlIcZcbUB5xSfp9x_A1s_ftUmARKw_EAJo0Y_s8iAXpoYsXoo2ihqews4m9NUopdN4FjeEV4jB-vJFF4O3JGUHWPmWpy-98bHcHPstv3uKI05EvdtnPXeG4fN3OdMrpuj5WEltpCKbBaRCLI-kqPjyHrzHydJTJ7WW4vVjRSIO

我似乎无法让第二个“令牌”cookie 在 Chrome 中消失,当我在 Edge 中进行测试时,我只看到一个“令牌”实例。我试过删除所有cookie,但问题又回来了。是我做错了什么还是我的浏览器中发生了一些不稳定的事情?

【问题讨论】:

    标签: php google-chrome cookies logout


    【解决方案1】:

    我明白了。我没有在 cookie 中指定路径。我最初在根文件夹中开发并测试了我的登录,随后将脚本迁移到“/account”子文件夹中。长话短说,该 cookie 使用默认路径“/account”定义,与根文件夹中定义的同名 cookie 不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多