Node.js Passport 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");
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
对象访问用户数据