我正在使用快速会话来管理会话。我正在使用这个:
app.use(session({secret: 'secret',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 6*1000
}
})
);
现在我想在每次点击我的网址时将过期值重置为6。所以我这样做:
req.session.cookie.maxAge = 6000
但是最大年龄不会重置,即使网址被点击,会话也会在6秒内到期。如何每次将其更改为6000?
感谢您的帮助
答案 0 :(得分:2)
你必须使用中间件,我的代码非常简单,但它适用于我
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
})
}));
答案 1 :(得分:0)
请查看此示例,它可能对您有所帮助
像这样更新您的代码
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 }
}));
OR
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版本并安装最新版本
所有示例都适用于我,请查看一个波纹管快照。