小编典典

删除cookie服务器端的正确方法

all

对于我的身份验证过程,我会在用户登录时创建一个唯一令牌并将其放入用于身份验证的 cookie 中。

所以我会从服务器发送这样的东西:

Set-Cookie: token=$2a$12$T94df7ArHkpkX7RGYndcq.fKU.oRlkVLOkCBNrMilaSWnTcWtCfJC; path=/;

适用于所有浏览器。然后要删除一个 cookie,我发送了一个类似的 cookie,其expires字段设置为 1970 年 1 月 1 日

Set-Cookie: token=$2a$12$T94df7ArHkpkX7RGYndcq.fKU.oRlkVLOkCBNrMilaSWnTcWtCfJC; path=/; expires=Thu, Jan 01 1970 00:00:00 UTC;

这在 Firefox 上运行良好,但不会删除 IE 或 Safari 上的 cookie。

那么删除 cookie 的最佳方法是什么(最好不使用 JavaScript)?set-the-expires-in-the-past
方法似乎很笨重。还有为什么这在 FF 中有效,但在 IE 或 Safari 中无效?


阅读 184

收藏
2022-07-16

共1个答案

小编典典

发送带有附加的相同 cookie 值; expires不会破坏 cookie。

通过设置一个空值来使 cookie 无效并包含一个expires字段:

Set-Cookie: token=deleted; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT

请注意,您不能强制所有浏览器删除 cookie。客户端可以配置浏览器以使 cookie 持续存在,即使它已过期。如上所述设置值将解决此问题。

2022-07-16