13 javascript session node.js express
我有一个快递应用程序,我有一个登录表单.我需要会话持续1个月我将maxAge设置为一个月(以毫秒为单位).
我打开了两台电脑并登录了24小时,当我回来时,两人都退出了.
我如何解决这个/实现我想要做的事情?谢谢.
Vad*_*hev 19
您可以使用expires属性而不是maxAge.它将Date对象作为值.此外,在客户端设置后检查会话cookie exipres.可能会话由服务器结束(即memcached restart).
代码示例:
app.use(express.session(
{ secret: "secret", store: new MemoryStore(), expires: new Date(Date.now() + (30 * 86400 * 1000))
}));
Run Code Online (Sandbox Code Playgroud)
但
app.use(express.session(
{ secret: "secret", store: new MemoryStore(), maxAge: Date.now() + (30 * 86400 * 1000)
}));
Run Code Online (Sandbox Code Playgroud)
对我也很好.
小智 19
@Vadim Baryshev 接受的答案至少在最近的快速会话实现中存在缺陷。当您的应用程序启动时,您创建会话实现并设置最大年龄。至于使用 expires 的答案,不推荐,坚持使用 maxAge。
这意味着所写的 maxAge 示例将在服务器启动一个月后的每个会话过期,并且将来创建的每个会话都将立即过期。在服务器重新启动之前,不会有任何有效的会话。
而不是传递日期对象,只需将毫秒数传递给 maxAge 属性,如下所示:
app.use(
session({
...,
cookie: {
maxAge: 30 * 24 * 60 * 60 * 1000
}
})
);
Run Code Online (Sandbox Code Playgroud)
maxAge表示会话持续的时间,以ms为单位; 到期意味着会话即将到期,即:日期对象
var hour = 3600000
req.session.cookie.expires = new Date(Date.now() + hour)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23307 次 |
| 最近记录: |