是什么导致我的Chrome Cookie中出现这种意外行为?

问题描述 投票:0回答:1

我正在使用一个名为“令牌”的cookie来保存base64编码的字符串。我将通过删除该Cookie登出。我的注销在Chrome中停止工作,刷新页面后,我的已删除Cookie会再次显示。

我创建了一个最小的HTML页面,以更好地理解问题...并且变得更加困惑。我需要一些帮助。我的期望是,简单的PHP行将创建一个“令牌” cookie,如果存在的话,它将覆盖前一个。我看到的是两个cookie,都命名为“ token”。登录到原始页面后剩下的一个,由该页面创建的一个。用于删除“令牌” cookie的JavaScript会删除新的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个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.