1

我尝试将护照与 expressjs 一起使用。passport.authenticate 函数中的 req.login 函数触发错误,我真的不知道我做错了什么。

passport.use(new LocalStrategy({ usernameField: 'email' }, function (username, password, done) {

    userModel.findOne({ 'email': username }, function (err, user) {
        if (err) { return done(err); }
        if (!user) { return done(null, false, { message: 'Unknown email adress ' + username }); }
        user.comparePassword(password, function (err, isMatch) {
            if (err) return done(err);
            if (isMatch) {
                return done(null, user);
            } else {
                return done(null, false, { message: 'Invalid password' });
            }
        });
    });
}));

passport.authenticate('local', function (err, user, info) {
            if (err) {
                return res.send(401, "Invalid authentication");
            }

            if (!user) {
                return res.send(401, info.message);
            }

            req.login(user, function (err) {
                //console.log(user);
                console.log(err);
                if (err) {
                    return res.send(401, "Invalid authentication4");
                }
                return res.send(200, res);
            });
        })(req, res, next);  

浏览器向我显示警报 Invalid authentication4,错误是在 req.login 函数中触发。在 shell console.log(err) 上,我有一条未定义的消息 [TypeError: Converting circular structure to JSON]

4

0 回答 0