节点路由护照当前用户ID

时间:2016-07-26 12:17:12

标签: node.js cookies

我使用的代码从Cookie获取当前用户ID,但登录的用户确实有另一个用户ID。我为用户使用了护照验证。我希望user_id成为当前的护照用户user_id

当前代码使用cookie用户ID:

routes.jes

app.get('/portal', isLoggedIn, function (req, res) {
        var user_id = req.cookies ?
            req.cookies.user_id : undefined;

        Box.
        find({
            user_id: user_id
        }).
        sort('-updated_at').
        exec(function (err, boxes) {
            if (err) return next(err);

            res.render('portal', {
                user: req.user,
                boxes: boxes
            });
        });
    });

我尝试过改变

var user_id = req.cookies ?
            req.cookies.user_id : undefined;

例如var user_id = req.user.user_id;,以及其他一些语法,但不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:2)

你在使用会话吗? ..如果是,请尝试req.session.user._id

app.use(session({
    secret: 'MySuperSecret',
    saveUninitialized: true,
    resave: false,
    duration: 30 * 60 * 1000,
    activeDuration: 5 * 60 * 1000
}));

当您使用req.session中的用户商店用户obj登录时,您可以随时随地访问它。

req.session.user = user;

更新:

使用护照时有效的其他解决方案: 将var user_id = req.user.id;更改为var user_id = req.user.user_id;