Почему isMatch постоянно false? Если вывести candidatePassword и this.password то они одинаковые.
userSchema.methods.comparePassword = function comparePassword(candidatePassword, cb) {
bcrypt.compare(candidatePassword, this.password, (err, isMatch) => {
cb(err, isMatch);
});
};
Вот функция с шифрованием паролей:
userScema.pre('save', function preSave(next) {
const user = this;
if (!user.isModified('password')) { return next();}
bcrypt.genSalt(10, (err, salt) => {
if (err) {return next(err); }
bcrypt.hash(user.password, salt, (err, hash) => {
if (err) {return next(err);}
user.password = hash;
next();
});
});
})
В чем проблема?