我一直在尝试使用sails实现记忆功能。我希望会话一直持续到浏览器关闭。但是,如果在用户登录时勾选了记忆复选框,我希望会话持续30天。我从这里使用了记住我的护照策略: https://github.com/jaredhanson/passport-remember-me 但它最终会坐在风帆会议的顶部,而第一个叫做第一个的人最终会取代另一个人。
答案 0 :(得分:1)
您可以在调用登录功能之前设置cookie年龄。
我是在登录控制器中完成的 - > passport.callback。
passport.callback(req, res, function (err, user, challenges, statuses) {
...
if (req.param('remember', false) == true) {
req.session.cookie.maxAge = 1000 * 60 * 60 * 24 * 30;
}
req.login(user, function (err) {
...
}
}
这种感觉确实不对,如果您在登录时发送其他Cookie,也会影响其生命周期。
但是它起作用了,因为找到与帆相关的东西的文档就像挖油一样,我选择了它。
另外,我注意到Passport没有正确销毁会话,必须通过调用注销控制器中的req.session.destroy();
手动完成。
答案 1 :(得分:0)
基本上你可以自己设置cookie并手动设置过期
res.cookie('userSession', {
items: [1, 2, 3]
}, {
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000),
httpOnly: true
})