0
在我的前端登录表单上,我只有输入字段“email”和“password”。本地护照需要一个usernameField名称并引发[MissingUsernameError:没有给出用户名]。有没有什么办法让护照本地不期望一个usernameField?护照本地猫鼬:未给出用户名错误
在我的前端登录表单上,我只有输入字段“email”和“password”。本地护照需要一个usernameField名称并引发[MissingUsernameError:没有给出用户名]。有没有什么办法让护照本地不期望一个usernameField?护照本地猫鼬:未给出用户名错误
如果你想使用电子邮件地址而不是用户名,那么你需要告诉护照。要做到这一点,请看下面的代码片段:
passport.use(new LocalStrategy({
usernameField: 'email', // this is where you do that
passwordField: 'password'
},
(email, password, done) => {
User.findOne({
email: email
}, (error, user) => {
if (error) {
return done(error);
}
if (!user) {
return done(null, false, {
message: 'Username or password incorrect'
});
}
// Do other validation/check if any
return done(null, user);
});
}
));
明白了。还需要修改var newUser = new User({username:req.body.email ....});在注册帖子路线中。非常感谢! – Jon
是的。您是否使用电子邮件代替用户名? –
是使用电子邮件代替。 – Jon