我正在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变量。有什么想法吗?
答案 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"});
}
})
})
);