【发布时间】:2016-10-03 21:55:02
【问题描述】:
我正在尝试在 express-js 应用程序中使用 express-session 包进行会话管理。
我有以下要求:
- Cookie 在浏览器关闭时在客户端被销毁。
- Cookie 在闲置 15 分钟后被销毁。
- Cookie 在创建 3 小时后被销毁(无论活动如何)。
(数字只是示例)。
我可以通过将 cookie maxAge 操作到最大值来处理空闲时间。但是,当我阅读 express-session 文档时,我看到:
默认情况下 cookie.maxAge 为 null,表示没有“expires”参数 设置使 cookie 成为浏览器会话 cookie。当用户 关闭浏览器,cookie(和会话)将被删除。
那么,如何创建一个“浏览器会话”cookie,它也有一个 maxAge(用于空闲/绝对超时)?
我也使用node-client-session package 进行了调查,但它不允许使用 ephemeral 和 maxAge。
【问题讨论】:
-
我不认为有 ephemeral AND expiring cookie 这样的东西,它是一个或另一个(如果一个 cookie 没有设置为
maxAge或expires属性,它是一个会话/临时 cookie)。见RFC 6265。 -
所以我想答案是将其设置为临时 cookie,然后自己在服务器端进行所有空闲/超时管理。
-
是的,恐怕是的。
-
@robertklep 将其设置为答案,以便我接受。实施起来很简单,实际上可以制作一个不错的包。
-
随意回答您自己的问题,您的解决方案可能对其他人有帮助(而我的评论仅仅是:评论):D
标签: express session-cookies express-session