对于我的身份验证过程,我在用户登录时创建一个惟一的令牌,并将其放入用于身份验证的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方法看起来很笨重。还有,为什么这在FF中有效,而在IE或Safari中不起作用?
发布于 2011-03-13 06:38:54
发送附加了; expires
的相同Cookie值不会破坏cookie。
通过设置空值并包括expires
字段来使cookie无效:
Set-Cookie: token=deleted; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT
请注意,您不能强制所有浏览器删除cookie。客户端可以这样配置浏览器:即使cookie过期,它也会继续存在。如上所述设置该值将解决此问题。
发布于 2012-12-18 00:14:11
将"expires“设置为过去的日期是删除cookie的标准方法。
您的问题可能是因为日期格式不是常规的。IE可能只期望GMT。
发布于 2020-03-30 21:23:09
使用Max-Age=-1而不是"Expires“。它更短,对语法不那么挑剔,而且Max-Age优先于Expires。
https://stackoverflow.com/questions/5285940
复制相似问题