У меня есть функция (см. Код), все работает, кроме функции user.comparehashandpass ().
Это приложение nodejs express mongoose.Некоторое время назад все работало нормально, но я не знаю, что пошло не так
код работает, кроме user.compareHashAndPass ()
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
user.compareHashandpass(password, user.password, function (err,
res) {
console.log("code reaches here")
if (err) {
return done(err);
} else {
return done(err, false, {
message: 'Incorrect password'
});
}
});
return done(null, user);
});
}
));
Я включил model.method вфайл модели.Как я уже говорил, раньше это работало нормально.
userSchema.methods.compareHashandpass = function(password, hash, cb){
bcrypt.compare(password, hash, function(err, res) {
if (err) return cb(err);
if (res === false) {
return false
} else {
return true
}
});
};
Предполагается вернуть сообщение: «Неверный пароль», если пароль в БД и пароль, предоставленные пользователем, не проверяются.Это только аутентификация имени пользователя.Возвращает «пользователя», даже если пароль неверный.