Object: нулевой прототип не позволяет получить значение - PullRequest
0 голосов
/ 29 мая 2019

Я получаю эту ошибку при попытке сравнить пароли

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);
            }
        }
    ))

1 Ответ

1 голос
/ 29 мая 2019

Попробуйте сравнить с user.attributes.password.

...