通过PassportJS发送验证消息

时间:2018-11-29 18:35:51

标签: node.js reactjs express passport.js

我有一个使用Passport和Express的身份验证API。在前端,我正在使用React,它从API读取JSON数据。一切正常,但是,如果用户登录时输入的电子邮件不存在,则服务器现在仅以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);
      });
    });
  }
);

路由处理程序

exports.signIn = function(req, res, next) {
  res.json({ token: createToken(req.user) });
};

路线

const requireSignIn = passport.authenticate("local", { session: false });

router.post("/login", requireSignIn, Auth.signIn);

0 个答案:

没有答案