【发布时间】:2013-01-06 01:21:00
【问题描述】:
自express group didn't have an answer 以来将这个问题提交给SO。
我正在设置会话 maxAge = 900000,并且我看到会话 cookie 上的 expires 属性设置正确。 但是,在后续请求中,超时不会被延长。它永远不会被扩展,cookie 最终会过期。
session middleware docs 说 Session#touch() 不是必需的,因为会话中间件会为我做这件事。我实际上尝试手动调用req.session.touch(),但什么也没做,我也尝试在req.session.cookie 上设置maxAge,但什么也没做:-(
我是否在某处遗漏了自动延长活动会话的设置?除了在每个请求上手动重新创建 cookie 之外,还有其他方法可以在最终用户活动后延长会话超时吗?
编辑:我在 express v3 中遇到了这个问题。我不是 100% 确定,但我认为来自 express changelog 的这条注释可能是罪魁祸首:
【问题讨论】:
-
去年我在我的一个项目中使用了 express 2.x。它在处理 session-cookie 方面同样出色,而且在这种情况下还有很多事情需要关注。您必须确认您的 cookie 属性,如路径、协议(仅限 http)和安全。通常,任何 HTTP 事务都将期望由先前请求设置的 cookie 用于进一步的身份验证过程。因此,请使用 firebug 或 Chrome 调试器在客户端(浏览器)中进行一些调试。并发布您的代码 sn-p 以提供更相关的答案
-
@jckdnk111 - 那个更新日志链接似乎已经消失了 - 你还有另一个吗?
标签: node.js session express session-cookies