Express JS – 重置cookie过期时间
我正在使用快速会话来pipe理会话。 我正在使用这个:
app.use(session({secret: 'secret', resave: false, saveUninitialized: false, cookie: { maxAge: 6*1000 } }) );
现在我想每次我的url被重置过期值为6。 所以我这样做:
req.session.cookie.maxAge = 6000
但最大年龄没有重置,并且会话在6秒钟内总是过期,即使URL被击中。 我怎么把这个改成每次6000?
我在这里先向您的帮助表示感谢
你必须使用中间件,我的代码很简单,但对我来说工作正常
app.use(function(req,res,next){ req.session._garbage = Date(); req.session.touch(); next() })
我把这个代码放在app.js中,对我很好
这是我的会话代码:
app.use(session({ cookie: { maxAge: 14400000 }, saveUninitialized: true, resave: true, secret: config.sessionSecret, store: new RedisStore({ port: 6379 }) }));
请检查这个例子,它可能对你有帮助
像这样更新你的代码
req.session._garbage = Date(); req.session.touch(); req.session.cookie.expires = 2592000000; // 30*24*60*60*1000 Rememeber 'me' for 30 days
为了您的参考,请检查下面的例子
app.use(session({ secret: 'iloveyoudear...', resave: true, saveUninitialized: true, cookie: {expires: 30*24*60*60*1000 } }));
要么
app.use(session({ secret: 'iloveyoudear...', resave: true, saveUninitialized: true, cookie: {maxAge: 30*24*60*60*1000 } }));
以上两个例子不能正常工作,请在你的路由器中单独设置
req.session.cookie.maxAge = 2592000000; // 30*24*60*60*1000 Rememeber 'me' for 30 days
这一个也不行,请检查你的
express-session和cookie-parser npm版本并安装最新版本
所有例子为我工作,请看下面一个快照。