У меня есть API аутентификации с использованием Passport и Express.На внешнем интерфейсе я использую React, который читает данные JSON, поступающие из API.Все работает, как и ожидалось, однако, если пользователь вводит электронное письмо, которого нет в файле при входе в систему, сейчас сервер отвечает только 401, тот же ответ, если пароль неверен.
Есть ли способ отправить конкретное сообщение из Passport или с сервера, когда пользователь вводит неверный адрес электронной почты или неверный пароль?
У меня естьпопытался добавить "сообщение" в Passport, но я не выяснил, как получить к нему доступ.
Passport.js
// Local Strategy
const localLogin = new LocalStrategy(
{ usernameField: "email", passwordField: "password" },
function(email, password, done) {
User.findOne({ email: email }, (err, user) => {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, {
message: "We don't have an account with that email on file"
});
}
user.validPassword(password, (err, isMatch) => {
if (err) {
return done(err);
}
if (!isMatch) {
return done(null, false);
}
return done(null, user);
});
});
}
);
Route Handler
exports.signIn = function(req, res, next) {
res.json({ token: createToken(req.user) });
};
Route
const requireSignIn = passport.authenticate("local", { session: false });
router.post("/login", requireSignIn, Auth.signIn);