【问题标题】:Passport Js custom callback function not calling next middlewarePassport Js 自定义回调函数不调用下一个中间件
【发布时间】:2020-09-12 06:15:55
【问题描述】:

我正在尝试使用护照 js 中的自定义回调对用户进行身份验证。我已经根据护照文件编写了我的代码。

router.post("/signin/email", function (req, res, next) {
passport.authenticate("email-local", function (err, user, info) {
    if (err) {
        return res.send("err");
    }
    if (!user) {
        return res.send(info);
    }
    req.logIn(user, function (err) {
        if (err) {
            return res.send(err);
        }
        next(user);
    });
    })(req, res, next),
        UsersController.getToken;
});

我想将用户传递给下一个中间件,即 UsersController.getToken ,但它没有被传递。我该如何解决这个问题?

【问题讨论】:

    标签: node.js passport.js passport-local


    【解决方案1】:

    Passport 将在调用 login 后将用户数据添加到 req.user,因此您无需使用 next 传递它。 我建议将req.logIn 调用简化为以下内容:

    return req.logIn(user, next)
    

    然后在您的UsersController.getToken 中间件中,您可以通过req 对象访问用户数据。

    【讨论】:

      猜你喜欢
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多