sails.js 会话 - 记住我的功能
sails.js Sessions - rememberme functionality
我一直在尝试使用 sails 实现记住我的功能。我希望 session 在浏览器关闭之前一直存在。但是,如果在用户登录时勾选了 rememberme 复选框,我希望 session 持续 30 天。我从这里使用了记住我的护照策略:
https://github.com/jaredhanson/passport-remember-me
但它最终坐在帆的顶部 session 而被称为第一个的那个最终取代了另一个。
基本上可以自己设置cookie,手动设置expires
res.cookie('userSession', {
items: [1, 2, 3]
}, {
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000),
httpOnly: true
})
您可以在调用登录函数之前设置 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,也会影响它们的生命周期。
但它确实有效,我也接受了它,因为查找 sails-related 的文档就像挖油一样。
此外,我注意到 Passport 没有正确销毁会话,必须通过在注销控制器中调用 req.session.destroy();
手动完成。
我一直在尝试使用 sails 实现记住我的功能。我希望 session 在浏览器关闭之前一直存在。但是,如果在用户登录时勾选了 rememberme 复选框,我希望 session 持续 30 天。我从这里使用了记住我的护照策略: https://github.com/jaredhanson/passport-remember-me 但它最终坐在帆的顶部 session 而被称为第一个的那个最终取代了另一个。
基本上可以自己设置cookie,手动设置expires
res.cookie('userSession', {
items: [1, 2, 3]
}, {
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000),
httpOnly: true
})
您可以在调用登录函数之前设置 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,也会影响它们的生命周期。
但它确实有效,我也接受了它,因为查找 sails-related 的文档就像挖油一样。
此外,我注意到 Passport 没有正确销毁会话,必须通过在注销控制器中调用 req.session.destroy();
手动完成。