Node.js 检索passport JS的返回消息(错误、用户、信息)

Node.js 检索passport JS的返回消息(错误、用户、信息),node.js,express,passport.js,Node.js,Express,Passport.js,如何获取消息并在我的router.post('/auth')中显示它 我试图通过说console.log(req.message)或console.log(req.session.message)来检索此消息,但我不知道如何获取它。我还尝试了console.log(req.session.passport.message) 我认为,如果身份验证成功,则不会以任何方式传递第三个参数(在您的情况下总是这样;默认情况下,当身份验证失败时,Passport将返回401,并且您的处理程序根本不会被调用)

如何获取消息并在我的router.post('/auth')中显示它

我试图通过说console.log(req.message)或console.log(req.session.message)来检索此消息,但我不知道如何获取它。我还尝试了console.log(req.session.passport.message)


我认为,如果身份验证成功,则不会以任何方式传递第三个参数(在您的情况下总是这样;默认情况下,当身份验证失败时,Passport将返回401,并且您的处理程序根本不会被调用)

但是,如果将策略配置为将其传递给验证回调,则可以向
req
添加额外属性:

passport.use(new FacebookTokenStrategy({
    clientID: 'HIDDEN',
    clientSecret: 'HIDDEN',
    passReqToCallback : true,
    }, function(req, accessToken, refreshToken, profile, done) {
      req.message = 'Your Message Here';
      ...
    }
}))
然后在处理程序中,您也可以通过
req.message
访问它

router.post('/auth', passport.authenticate('facebook-token'), function(req, res){
    console.log("Verifying");
    console.log("HOW TO LOG THAT MESSAGE HERE?");
    if(req.isAuthenticated()){
        console.log(req.session.passport.user);
    }else{
        console.log("NOT");
    }
});
passport.use(new FacebookTokenStrategy({
    clientID: 'HIDDEN',
    clientSecret: 'HIDDEN',
    passReqToCallback : true,
    }, function(req, accessToken, refreshToken, profile, done) {
      req.message = 'Your Message Here';
      ...
    }
}))