Я пытаюсь использовать passport-local-mongoose для аутентификации пользователя в экспресс-приложении, но я хочу использовать электронную почту вместо имени пользователя, поэтому после некоторых исследований я обнаружил, что паспорт предоставляет способ сделать это, выполнив что-то подобное:
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.use(LocalStrategy);
User.authenticate();
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
Но я все еще получаю сообщение об ошибке "имя пользователя не задано", и оно не сохранит пользователя в базе данных.