节点+ 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