有人可以解释什么是什么,为什么我们要在护照末尾添加(要求,要求,下一步)。进行身份验证,到目前为止,我在教程中看到的只是我们需要它,因为我们希望它触发立即关闭,但我不太了解。
代码如下:
router.post('/login', (req, res, next) => { <br>
passport.authenticate('local', { <br>
successRedirect: '/songs/list', <br>
failureRedirect: '/users/login', <br>
failureFlash: true <br>
})(req, res, next); <---- *This line*
答案 0 :(得分:1)
您要声明一个函数并立即调用它。执行此操作,以便可以访问req
内部的passport.authenticate
对象。
因此,如果您需要访问passport
内部的请求对象,则需要自定义回调。您的代码似乎不使用req
对象,因此您只需使用
app.post("/protected",passport.authenticate("local",{
successRedirect:"/user",
failureRedirect:"/login"
}),function(req,res){
});
如果您的应用程序需要访问req对象,则:
app.get('/protected', function(req, res, next) {
passport.authenticate('local', function(err, user, profile) {
if (err) { return next(err) }
if (!user) { return res.redirect('/signin') }
res.redirect('/account');
})(req, res, next);
});