用户身份验证错误 - Passport.js

时间:2017-08-24 14:21:03

标签: javascript node.js express passport.js

我使用passport.js(本地策略)对用户进行身份验证,但我收到以下错误:

Unhandled "error" event. (Incorrect arguments)

详细错误消息:

enter image description here

index.js文件:

const {register: registerUser, login: loginUser} = require('../controllers/authentication');

// login
router
.route('/login')
.post(loginUser);

Authentication.js文件:

// login function
let login = (req,res) => {

if(!req.body.email || !req.body.password){
    sendJsonResponse(res, 400, {"message": "All fields required"});
    return;
}

passport.authenticate('local', (err, user, info) => {

    let token;

    if(err){
        sendJsonResponse(res, 404, err);
        return;
    }

    if(user){
        token = user.generateJwt();
        sendJsonResponse(res, 200, {
           "token": token
        });
    } else {
        sendJsonResponse(res, 401, info);
    }
})(req,res);
};

Passport.js文件:

const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const mongoose = require('mongoose');
const User = mongoose.model('Users');

passport.use(new LocalStrategy({
    usernameField: 'email',

}, function (email, password, done) {
    User.findOne({'email': email}, function(err, user) {
        if(err){
            return done(err);
        }

        if(!user){
            return done(null, false, {message: 'Incorrect Username.'});
        }

        if(!user.validPassword(password)){
            return done(null, false, {message: 'Incorrect Password.'});
        }
        return done(null, user)
    });
   }
));

我似乎无法弄清问题是什么。我已经尝试检查typeof电子邮件和密码,但确实是Strings。有谁知道可能是什么问题。

0 个答案:

没有答案