没有过期日期的 Javascript Cookie

IT技术 javascript cookies
2021-02-26 05:24:34

我想设置一个永不过期的 cookie。这甚至可能吗?

 document.cookie = "name=value; expires=date; path=path;domain=domain; secure";

我不想让日期变得非常大,我只是想知道 cookie 上的 expires 参数是否有一个值告诉它永不过期。

谢谢。

6个回答

不。那是做不到的。最好的“方法”就是让到期日期像 2100 年一样。

只剩下四年时间了。希望你更新了cookie。
2021-04-15 05:24:34
2020 - 饼干末日
2021-05-09 05:24:34
所以,基本上,在 2038 年 1 月 19 日,Chewie 将坐在千年隼号上,再次抱怨银河地图 API 上的 cookie 策略弹出窗口......
2021-05-09 05:24:34
该死的,一年比一年更近了,我希望你的代码已经更新了。
2021-05-10 05:24:34
现在已编辑到 2030 年,我们将厄运再推迟 10 年
2021-05-10 05:24:34

没有你想要的语法。不设置 expires 会导致 cookie 在会话结束时过期。唯一的选择是选择一些任意大的值。请注意,某些浏览器的日期超过 2038 年(当 unix 纪元时间超过 32 位整数时)存在问题。

2038-01-19, 03:14:08 UTC,准确地说。
2021-04-26 05:24:34
只是澄清一下:这是一个规则,在每个浏览器中都以相同的方式工作吗?这意味着如果我不设置到期日期,cookie 将只持续到会话结束。
2021-04-29 05:24:34
没有ExpiresorMax-Age指令创建的 cookie是会话 cookie:它在客户端关闭时被删除。但是,Web 浏览器可能会使用会话恢复功能,这会使大多数会话 cookie 永久化,就好像浏览器从未关闭过一样。来源:MDN
2021-05-02 05:24:34

您可以按照Mozilla 文档中的示例进行操作

 document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT";

聚苯乙烯

当然,如果人类在 10000 年的第一分钟仍然使用你的代码,就会有问题:)

2021-04-26 05:24:34
使用npmjs.com/package/universal-cookie对我不起作用使用了2038 年的解决方案我写了一张票要在 2030 年回来看看是否有解决办法。
2021-05-03 05:24:34
你确定是星期五?
2021-05-07 05:24:34

所有 cookie 根据 cookie规范过期,您可以设置的最大值为

 2^31 - 1 = 2147483647 = 2038-01-19 04:14:07

所以最大 cookie 寿命是

$.cookie('subscripted_24', true, { expires: 2147483647 });
那个号码对我不起作用。经过一些反复试验,我能够使用的最高数字是 99983090(到期日=星期五,275760 年 9 月 12 日 18:10:24 GMT)。任何更高的返回“无效日期”
2021-04-30 05:24:34
上面的代码使用了jquery-cookie插件,该插件已被js-cookie 淘汰
2021-05-01 05:24:34
对于香草 JS: document.cookie = 'subscripted_24=true; expires=' + new Date(2147483647 * 1000).toUTCString();
2021-05-03 05:24:34
@JeffreyPia 你可以多花几个小时,直到Sat, 13 Sep 275760 00:00:00 GMT. 让一切变得不同。
2021-05-09 05:24:34
如果您将一个数字作为 expires 参数传递给 jquery-cookie 或 js-cookie,则从现在开始将其视为过期天数。如果你想要一个固定的日期,你必须传递一个 Date 对象。
2021-05-13 05:24:34

您可能会在一个月或某天的到期日设置 cookie,然后每次用户再次访问该网站时重新分配 cookie

这是设置无限cookie的正确答案。如果您需要考虑到用户从不关闭网站,您可以通过任何操作或在特定时间后实现更新 cookie 的附加条件。
2021-05-10 05:24:34