sails.js会话 - rememberme功能

时间:2015-04-14 18:28:46

标签: session sails.js remember-me

我一直在尝试使用sails实现记忆功能。我希望会话一直持续到浏览器关闭。但是,如果在用户登录时勾选了记忆复选框,我希望会话持续30天。我从这里使用了记住我的护照策略: https://github.com/jaredhanson/passport-remember-me 但它最终会坐在风帆会议的顶部,而第一个叫做第一个的人最终会取代另一个人。

2 个答案:

答案 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
    })