访问node.js中的user._id

时间:2018-09-10 00:42:02

标签: node.js authentication mongoose login

我对node.js很陌生,我正在尝试使用Node.js,Express,bcrypt,express-session和mongoose来实现简单的用户注册和登录表单。

无论何时用户登录,我都想将req.session.userID的值设置为用户的id。当我跟踪代码时,我找不到问题。我按照this link中的教程进行了后续学习,一切似乎都差不多。

模式:

var userModel = require('./../models/users');
router.post('/login', (req, res) => {
    var email = req.body.email;
    var password = req.body.password;
    userModel.authenticate(email, password, (err, user) => {
        console.log(user)
        if (err) {
            console.log(err)
        }
        else if (!user) {
            console.log('Wrong Password')
        }
        else {
            req.session.userId = user._id;
            console.log(req.session.userId);

        }
    })
});

服务器:

library(dplyr)  

df <- dataset %>%
      group_by(state_id,city_id) %>%
      group_by(three_month = round_date(weekly_dt, "quarter")) %>%   
      summarise_at(vars(starts_with('value')), mean)

在我记录req.session.userId的值的地方,它返回未定义!问题出在哪里?

1 个答案:

答案 0 :(得分:1)

问题是回调函数返回TRUE。回调应该返回 user 数据。 回调(空,用户)

bcrypt.compare(password, user.password, (err, result) => {
                if (result) {
                    callback(null, true)
                }

应该是

bcrypt.compare(password, user.password, (err, result) => {
                if (result) {
                    callback(null, user)
                }