护照认证,需要基本说明

时间:2019-03-27 14:27:44

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

有人可以解释什么是什么,为什么我们要在护照末尾添加(要求,要求,下一步)。进行身份验证,到目前为止,我在教程中看到的只是我们需要它,因为我们希望它触发立即关闭,但我不太了解。

代码如下:

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*

1 个答案:

答案 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);
});

更多信息@ https://github.com/jaredhanson/passport/issues/1