gpt4 book ai didi

javascript - 注销时删除登录 cookie

转载 作者:行者123 更新时间:2023-11-27 23:31:40 26 4
gpt4 key购买 nike

我在使用 cookie 时遇到了问题,并且出现了一些奇怪的行为。目前 cookie 在登录时设置如下:

document.cookie = "cookie1=" + cookie1 + "; expires=0; path=/";
document.cookie = "basicAuth=" + basicAuth + "; expires=0; path=/";
document.cookie = "cookie2=" + cookie2 + "; expires=0; path=/"

效果很好。我在标题中有一个注销按钮,单击它会执行以下操作:

document.cookie = "cookie1=";
document.cookie = "basicAuth=";
document.cookie = "cookie2=";

在 header 脚本中,我进行了一个简单的检查,以查看 cookie1 是否为空,并隐藏 header 导航栏并重定向以登录(如果为空):

if (getCookie("cookie1") == "") {
$(".navbar").css({"display":"none"});
window.location.href = "/signin";
}

现在我第一次可以有效地注销,但是重新登录并再次注销似乎无法正常工作。我仍然看到导航栏,并且重定向似乎只能有选择地工作。有更好的方法来设置或删除cookie吗?

最佳答案

当你删除cookie时,你还应该添加日期和路径,并且日期应该是过去的日期才能删除cookie,所以类似于

document.cookie = "cookie1=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";

specification

...to remove a cookie, the server returns a Set-Cookie header with anexpiration date in the past. The server will be successful inremoving the cookie only if the Path and the Domain attribute in theSet-Cookie header match the values used when the cookie was created.

如果您使用helper functions,Cookie 通常更容易在 Javascript 中使用。为您设置名称、值、UTC 时间戳等,而不是每次设置或获取 cookie 时都执行此操作。

您所做的只是将 cookie 设置为空字符串,它从未真正删除。

关于javascript - 注销时删除登录 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34519089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com