我想使用Knex-MySQL,Express和NodeJS来构建应用程序。我为代码上传了Plunker。我还没有前端,我正在使用Postman。
注册工作正常,但登录后我能得到
{
"status": "User not found"
}
或
{
"message": "Missing credentials"
}
似乎是哪个问题?为什么登录后看不到我插入数据库的用户?
答案 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
。