【发布时间】:2012-09-29 00:56:35
【问题描述】:
我正在构建一个在后端与 Express 对话的单页 javascript 应用程序。在应用程序的各个点,我们与后端交互,更新会话。出于安全原因,会话到期时间相对较短。
在其中,我想警告用户会话可能会过期,如果他们已经闲置很长时间并且没有与后端进行任何交易。
我想要一个 Express“心跳”路由来返回会话剩余的时间 (session.maxAge),但我不希望它刷新会话过期时间。
connect.session 代码在请求结束时自动刷新会话。
我正在寻找一种方法来访问会话以获取 maxAge,但没有更新它。
【问题讨论】:
-
您考虑过使用socket.io 吗?
-
嘿,这实际上是我正在使用的。但是,socket.io + cluster + redisstore + xhr_polling = 完全失败(github.com/LearnBoost/socket.io/issues/939)。所以,我正在寻找一个老派的解决方法。此外 - 通过 socket.io 触摸会话不会更新 cookie 上的过期时间 - 因此 redis/cookie 过期时间会变得不同,直到发出真正的请求。