Выполните вход в систему и зарегистрируйтесь, используя Knex, Express и NodeJS - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу создать приложение, используя Knex-MySQL, Express и NodeJS. Я загрузил Plunker для моего кода. У меня пока нет внешнего интерфейса, я использую Почтальон.

Регистрация работает нормально, но при входе в систему я получаю

{
    "status": "User not found"
}

или

{
    "message": "Missing credentials"
}

В чем проблема? Почему логин не видит пользователя, которого я вставил в БД?

1 Ответ

0 голосов
/ 13 сентября 2018

Я выяснил, в чем проблема, и изменил функцию с local.js следующим образом:

passport.use('local', new LocalStrategy({
  usernameField: 'email',
  passwordField: 'password'
},
  function (username, password, done) {
    knex('user')
      .where('email', '=', username)
      .then((err, user) => {
        if (err) { return done(err); }
        if (!user) {
          return done(null, false, { message: 'Incorrect email.' });
        }
        if (!user.isValid(password)) {
          return done(null, false, { message: 'Incorrect password.' });
        }
        return done(null, user);
      })
  }
));

email - это не то, что ищет passportjs, но username - это.

...