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