bcrypt.compare()
всегда возвращается с этим кодом в пользовательской модели. Это с помощью bcrypt-nodejs.Bcrypt compare всегда возвращает false
User.pre('save', function (callback) {
this.password = bcrypt.hashSync(this.password, bcrypt.genSaltSync(10))
this.token = jwt.sign(this.email, process.env.JWT_SECRET)
callback()
})
User.methods.verifyPassword = function (password) {
const self = this
return Q.Promise((resolve, reject) => {
bcrypt.compare(password, self.password, (error, isMatch) => {
if (error) reject(new Error("Error checking user password."))
resolve(isMatch)
})
})
}
Я вижу, что в базе данных появляется хеш. Я вижу, что этот правильный пароль входит в функцию verifyPassword
.
EDIT: Проблема, кажется, что .pre('save', ...
происходит два раза подряд. Таким образом, новый хешированный пароль снова хешируется.