![](/img/trans.png)
[英]How do I dynamically set the session cookie's expires/maxAge in Express/Node.js?
[英]Node session cookie that expires
是否可以创建一个会话cookie(一个在浏览器关闭时自动删除)并且还有一个到期时间,以便它会在设定的时间后过期,比如15分钟,除非用户继续使用该网站? 如果他们使用该网站,我想重置过期,所以它持续15分钟。
我真的很幸运,要么创建一个会话cookie,该会话cookie在浏览器关闭时到期,要么作为持久cookie保留,但是使用expires或maxAge参数到期。
我唯一能想到的是创建一个会话cookie,其中存储有时间戳值和会话中间件,检查当前时间>时间戳值,然后拒绝请求并通过将其设置为null来删除cookie 。 如果当前时间<=时间戳,则将时间戳更新为新日期,从而有效地延长会话超时。
虽然我的想法可行,但它让我觉得有一种更正式的方式来实现我想要的东西。
我目前正在尝试节点和表达,因此任何针对该构建量身定制的洞察力都将受到赞赏。
因为您创建会话cookie的方式是省略过期,所以您无法使用单个cookie实际执行此操作。
但是,您可以使用两个cookie,一个会话cookie和一个到期cookie来实现。 以下是使用两个cookie执行此操作的一些逻辑:
session=randomNumber
。 expiry=randomNumber
,在15分钟后到期。 如果浏览器关闭,会话cookie将被删除。 如果15分钟过后,第二个cookie将被删除。 如果浏览器已关闭然后重新打开,则不会有会话cookie,即使您输入另一个cookie,第二个cookie也不会包含相同的随机数。
通过检查两个cookie的存在,您确保已满足这两个条件。
而且,如果您希望15分钟的cookie在任何页面加载时不断刷新自己,您可以让服务器在每个页面上重新创建该cookie,并在15分钟后重新创建新的时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.