如何延长快速会话超时
How to extend express session timeout
我正在使用 express js 4 和 express-session
并将 maxAge
设置为一小时。但是,如果用户继续访问该网站,则应延长超时时间,否则即使 he/she 仍在使用它,用户也会被注销。
app.use(session({
secret: 'xxx',
name: 'sessionId',
resave: true,
saveUninitialized: true,
cookie: {
httpOnly: true,
maxAge: 1*60*60*1000
})
}))
这似乎是一项常见的任务,但我在任何地方都找不到。提前致谢。
我认为您可以通过在每次用户发送请求时增加 maxAge
来解决您的问题。当用户发送请求时,计算会话超时前剩余的时间,用一小时减去该时间,并将结果添加到 maxAge
。或者,您可以使用 expires 属性 以及非常大的 maxAge:
var hour = 3600000
req.session.cookie.expires = new Date(Date.now() + hour)
req.session.cookie.maxAge = 100 * hour
并且每当发送请求时,再次计算expires
:
var hour = 3600000
req.session.cookie.expires = new Date(Date.now() + hour)
express-session
有一个 rolling
属性 可以设置。默认设置为 false
。如果您将 rolling
属性 设置为 true
,它会将 expiration
重置为 maxAge
。
我从文档中得到了信息here
app.use(session({
secret: 'xxx',
name: 'sessionId',
resave: true,
saveUninitialized: true,
rolling: true, // <-- Set `rolling` to `true`
cookie: {
httpOnly: true,
maxAge: 1*60*60*1000
})
}))
我正在使用 express js 4 和 express-session
并将 maxAge
设置为一小时。但是,如果用户继续访问该网站,则应延长超时时间,否则即使 he/she 仍在使用它,用户也会被注销。
app.use(session({
secret: 'xxx',
name: 'sessionId',
resave: true,
saveUninitialized: true,
cookie: {
httpOnly: true,
maxAge: 1*60*60*1000
})
}))
这似乎是一项常见的任务,但我在任何地方都找不到。提前致谢。
我认为您可以通过在每次用户发送请求时增加 maxAge
来解决您的问题。当用户发送请求时,计算会话超时前剩余的时间,用一小时减去该时间,并将结果添加到 maxAge
。或者,您可以使用 expires 属性 以及非常大的 maxAge:
var hour = 3600000
req.session.cookie.expires = new Date(Date.now() + hour)
req.session.cookie.maxAge = 100 * hour
并且每当发送请求时,再次计算expires
:
var hour = 3600000
req.session.cookie.expires = new Date(Date.now() + hour)
express-session
有一个 rolling
属性 可以设置。默认设置为 false
。如果您将 rolling
属性 设置为 true
,它会将 expiration
重置为 maxAge
。
我从文档中得到了信息here
app.use(session({
secret: 'xxx',
name: 'sessionId',
resave: true,
saveUninitialized: true,
rolling: true, // <-- Set `rolling` to `true`
cookie: {
httpOnly: true,
maxAge: 1*60*60*1000
})
}))