我是这样做的:
app.use(express.session({
cookie:{domain:"."+settings.c.SITE_DOMAIN},
secret:'abc',
store: redis_store,
}));
当我登录到我的 redis 并键入 TTL sess:...
时,似乎此 session 已过期。
如何让 session 永不过期? (对于一切)。我还希望 cookie 永不过期。
最佳答案
如 Connect guide on the session middleware page 中所述(Express 在内部使用 Connect),您可以在 session 上指定一个 maxAge 选项:
- cookie Session cookie settings, defaulting to { path: '/', httpOnly: true, maxAge: 14400000 }
例子:
connect(
connect.cookieParser()
, connect.session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }})
, connect.favicon()
, function(req, res, next){
var sess = req.session;
if (sess.views) {
res.setHeader('Content-Type', 'text/html');
res.write('<p>views: ' + sess.views + '</p>');
res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's</p>');
res.end();
sess.views++;
} else {
sess.views = 1;
res.end('welcome to the session demo. refresh!');
}
}
).listen(3000);
注意:maxAge 以毫秒为单位,例如一天 = 86400000
关于javascript - 在 Node.js Express/Connect 中,有没有办法将 session 设置为无限大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8951258/