使用Knex,Express和NodeJS执行登录和注册

时间:2018-09-13 08:15:00

标签: mysql node.js express knex.js

我想使用Knex-MySQL,Express和NodeJS来构建应用程序。我为代码上传了Plunker。我还没有前端,我正在使用Postman。

注册工作正常,但登录后我能得到

{
    "status": "User not found"
}

{
    "message": "Missing credentials"
}

似乎是哪个问题?为什么登录后看不到我插入数据库的用户?

1 个答案:

答案 0 :(得分:1)

我找出了问题所在,然后像这样从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并不是护照护照所要寻找的,而是username