路由器回调中未达到 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)。我添加了这个,现在我的代码被解雇了。