Passportjs自定义回拨 - '密码错误'信息

时间:2015-12-19 04:49:14

标签: node.js passport.js

对于常规身份验证,“密码不正确”'消息可通过failureFlash

获得
app.post('/login',
  passport.authenticate('local', { successRedirect: '/',
                                   failureRedirect: '/login',
                                   failureFlash: true })
);

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.findOne({ username: username }, function (err, user) {
      if (err) { return done(err); }
      if (!user) {
        return done(null, false, { message: 'Incorrect username.' });
      }
      if (!user.validPassword(password)) {
        return done(null, false, { message: 'Incorrect password.' });
      }
      return done(null, user);
    });
  }
));

但是,如果我使用自定义回调,我该如何访问“密码不正确”#39;消息并显示给用户?因为自定义回调似乎只检查(!用户)。我需要自定义回调,因为我通过ajax登录,我不能重定向。

app.get('/login', function(req, res, next) {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err); }
    if (!user) { return res.status(401).send({"ok": false}); }
    req.logIn(user, function(err) {
      if (err) { return next(err); }
      return return res.send({"ok": true});
    });
  })(req, res, next);
});

0 个答案:

没有答案