Я получаю эту ошибку при попытке сравнить пароли
UnhandledPromiseRejectionWarning: Ошибка: требуются аргументы данных и хеша
дело в том, что user.password возвращает неопределенное значение,но когда я делаю console.log (пользователь), он возвращает модель
Примерно так:
ModelBase {
attributes:
[Object: null prototype] {
username: 'billy',
id: 4,
password:
'$2b$12$oIIn*******AnNkr/Pt89S****W3Vi2o8DYBgnEy9t9gcje',
email: 'exampleman@example.com',
created_at: 2019-05-28T20:00:37.164Z,
updated_at: 2019-05-28T20:00:37.164Z },
Так что я не понимаю, почему я получаю неопределенный при выполнении user.password
passport.js
.......
passport.use('login',
new Local(
{
usernameField:'username',
passwordField:'password',
session:false
},
(username, password, done, req) => {
try{
User.forge({username: username}).fetch()
.then(user => {
if(user === null){
return done(null, false, {message: 'Username doesn\'t exist'})
}
else{
console.log(user); // logs out user model along with password info
// not getting user.password from user model.
bcrypt.compare(password, user.password)
.then(response => {
if(response !== true){
console.log('passwords do not match');
return done(null, false, {message:'passwords do not match'} )
}
console.log('user found & authenticated');
return done(null, user);
})
}
})
}catch(err){
done(err);
}
}
))