Passport自定义回拨信息

时间:2016-04-20 15:35:22

标签: javascript authentication passport.js

我正在PassportJS中实现自定义回调,但是附加信息没有传递给回调。

文档说明:

  

将传递一个可选的info参数,其中包含其他参数   战略验证回调提供的详细信息。

如果我将以下内容传递给回调:

return done(null, false, {message: 'Authentication failed.'});

使用此演示代码...

app.get('/login', function(req, res, next) {
  passport.authenticate('basic', function(err, user, info) {
    if (err) { return next(err); }
    if (!user) { return res.status(401).json({message: info.message}); }
    req.logIn(user, function(err) {
      if (err) { return next(err); }
      return res.status(200).json({message: 'success'});
    });
  })(req, res, next);
});

info变量应包含带有上述值的消息字段,但info变量仅包含以下内容:

  

“Basic realm = \”Users \“”

我看过无数的例子,但我无法弄清楚为什么附加信息没有附加到info变量。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我正在使用此代码添加详细信息。您可能必须使用闪存消息(连接闪存)库来发送闪存消息并读取它们。 看看这是否符合您的要求

passport.use(
  new LocalStrategy(
    {},
    function(username, password, done) {
      var promise =authenticateService.authenticateUser(username,password);

      promise.then(function(authToken)
      {
        if(authToken=="INVALID CREDENTIALS")
        {
           return done(null, false,{});
        }else{

          return done(null, {
             username: username,authToken:authToken
           },{"sucess":"sucesss"});
        }
      })
    })
);