路由器回调中未达到 Express Passport Js 身份验证
Express Passportjs Authenticate not being reached in router callback
如果我将 passport.authenticate("local")
作为中间件传递到我的路由中,它就会执行。但是这样我就无法访问 res 所以我可以将消息发送回我的前端。但是,如果我尝试在路由回调函数中调用它,它不会触发。
router.post("/login", function(req, res, next) {
passport.authenticate("local", function(err, user, info) {
console.log("Unreached"); // This is not logging
});
})
这是我的 passport.use
里面 app.js
passport.use(new LocalStrategy({
usernameField: "portalId"
}, function(portalId, enteredPassword, done) {
var params = {
TableName: "MyTableName",
KeyConditionExpression : "PortalID = :portalID",
ExpressionAttributeValues : {
":portalID" : Number(portalId)
}
}
docClient.query(params, function(err, user) {
if (err) throw err;
let realPassword = user.Items[0].password;
bcrypt.compare(enteredPassword, realPassword, function(err, res) {
if (err) throw err;
if (res) {
return done(null, user);
}
if (!res) {
return done(null, false, { message: "Invalid Credentials" });
}
})
})
}));
在其他 post 中看到一段使用自定义回调的代码,他在 passport.authenticate
函数之后有 (req, res, next)
。我添加了这个,现在我的代码被解雇了。
如果我将 passport.authenticate("local")
作为中间件传递到我的路由中,它就会执行。但是这样我就无法访问 res 所以我可以将消息发送回我的前端。但是,如果我尝试在路由回调函数中调用它,它不会触发。
router.post("/login", function(req, res, next) {
passport.authenticate("local", function(err, user, info) {
console.log("Unreached"); // This is not logging
});
})
这是我的 passport.use
里面 app.js
passport.use(new LocalStrategy({
usernameField: "portalId"
}, function(portalId, enteredPassword, done) {
var params = {
TableName: "MyTableName",
KeyConditionExpression : "PortalID = :portalID",
ExpressionAttributeValues : {
":portalID" : Number(portalId)
}
}
docClient.query(params, function(err, user) {
if (err) throw err;
let realPassword = user.Items[0].password;
bcrypt.compare(enteredPassword, realPassword, function(err, res) {
if (err) throw err;
if (res) {
return done(null, user);
}
if (!res) {
return done(null, false, { message: "Invalid Credentials" });
}
})
})
}));
在其他 post 中看到一段使用自定义回调的代码,他在 passport.authenticate
函数之后有 (req, res, next)
。我添加了这个,现在我的代码被解雇了。