Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Passport Js自定义回调函数不调用下一个中间件_Node.js_Passport.js_Passport Local - Fatal编程技术网

Node.js Passport Js自定义回调函数不调用下一个中间件

Node.js Passport Js自定义回调函数不调用下一个中间件,node.js,passport.js,passport-local,Node.js,Passport.js,Passport Local,我正在尝试使用passport js中的自定义回调对用户进行身份验证。我已经根据护照文件编写了代码 router.post("/signin/email", function (req, res, next) { passport.authenticate("email-local", function (err, user, info) { if (err) { return res.send("err");

我正在尝试使用passport 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;
});

我想将用户传递到下一个中间件,即
userscoontroller.getToken
,但没有传递。如何解决此问题?

调用登录后,Passport会将用户数据添加到
req.user
,因此您无需将其传递给next。 我建议简化对以下内容的
req.logIn
调用:

返回请求登录(用户,下一个)
然后在
UsersController.getToken
中间件中,您可以通过
req
对象访问用户数据