Я получаю эту ошибку при попытке сравнить пароли
UnhandledPromiseRejectionWarning: Error: data and hash arguments required
дело в том, что user.password возвращает undefined, но когда я делаю console.info(user), он возвращает модель
Так
ModelBase {
attributes:
[Object: null prototype] {
username: 'billy',
id: 4,
password:
'$2b$12$oIIn*******AnNkr/Pt89S****W3Vi2o8DYBgnEy9t9gcje',
email: '[email protected]',
created_at: 2019-05-28T20:00:37.164Z,
updated_at: 2019-05-28T20:00:37.164Z },
Так что я не понимаю, почему я получаю неопределенность при выполнении user.password
паспорт.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.info(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.info('passwords do not match');
return done(null, false, {message:'passwords do not match'} )
}
console.info('user found & authenticated');
return done(null, user);
})
}
})
}catch(err){
done(err);
}
}
))
Попробуйте сравнить с user.attributes.password
.