节点+ Express会话到期?
我有一个快速应用程序,我有一个login表单。 我需要会话持续1个月,我设置maxAge为一个月毫秒。
我离开了两台电脑,并login了24小时,当我回来时,两人都注销了。
我如何解决这个问题/实现我想要做的? 谢谢。
您可以使用expires属性而不是maxAge。 它将Date对象作为值。 另外,请在客户端设置后检查会话cookie的exipres。 也许会话由服务器结束(即memcached重启)。
代码示例:
app.use(express.session( { secret: "secret", store: new MemoryStore(), expires: new Date(Date.now() + (30 * 86400 * 1000)) }));
但
app.use(express.session( { secret: "secret", store: new MemoryStore(), maxAge: Date.now() + (30 * 86400 * 1000) }));
对我也很好。
app.use(express.session({ secret : 'sdfsdSDFD5sf4rt4egrt4drgsdFSD4e5', store : new storage({ client : conn, cleanup: false }), cookie : { maxAge : new Date(Date.now() + (60 * 1000 * 30)) } }));
maxAge表示会话持续的时间,以ms为单位; 到期意味着会话何时到期,即:date对象
var hour = 3600000 req.session.cookie.expires = new Date(Date.now() + hour) req.session.cookie.maxAge = hour
documentataion
文档不build议直接设置cookie.expires。 相反,直接设置cookie.maxAge。
快速会话 – cookie.expires