未知,未指明"错误"事件。护照[Node.js]中的(不正确的参数)

时间:2017-10-07 05:37:23

标签: node.js passport.js

我已经使用护照进行验证并保存了值是资源集合,并且我得到了未被捕获,未指定"错误"事件。 (参数不正确)。但我只使用了相同的电子邮件和密码名称

我的passport.js在下面

  var LocalStrategy   = require('passport-local').Strategy;
    var mongoose = require('mongoose');
    var User = require('../app/models/db_model');

    module.exports =function(passport){
        passport.serializeUser(function(user, done) {
            done(null, user.id);
            //console.log("ser"+user);
        });

        passport.deserializeUser(function(id, done) {
            User.findById(id, function(err, user) {
                //console.log("deser"+user);
                done(err, user);
            });
        });

        passport.use('local-userlogin', new LocalStrategy({
            usernameField : 'email',
            passwordField : 'password',
            passReqToCallback : true 
        },
        function(req, email, password, done) { 

            User.findOne({ 'email' :  email}, function(err, user) {

                console.log(user);
                if (err)
                    return done(err);

                if (!user)
                    return done(null, false, req.flash('loginMessage', 'Oops! Invalid Username.'));


                if (!user.validPassword(password))
                    return done(null, false, req.flash('loginMessage', 'Oops! Invalid Password.'));

                return done(null, user);


            });

        }));
    }

请在这个问题上帮助我

1 个答案:

答案 0 :(得分:2)

使用Passport和Bcrypt [bcrypt-nodejs]时收到同样的错误。

在我的用户模型中,我有

userSchema.methods.encryptPassword = password => {
    return bcrypt.hashSync(password, bcrypt.genSaltSync(1), null); 
}

userSchema.methods.validPassword = password => {
    return bcrypt.compareSync(password, this.password); 
} 

然后用

代替
userSchema.methods.encryptPassword = function(password) {
    return bcrypt.hashSync(password, bcrypt.genSaltSync(5), null);
}

userSchema.methods.validPassword = function(password) {
    return bcrypt.compareSync(password, this.password);
}

这摆脱了错误。 这似乎意味着bcrypt-nodejs不喜欢箭头功能。

希望这有帮助。