用于社交媒体平台的passport.js身份验证的工作流程

时间:2018-09-23 12:57:49

标签: node.js express passport.js facebook-authentication

我最近按照其文档中的示例在我的一个应用程序中使用了password.js。虽然我可以使其工作,但我确实不了解工作流程。
下面,我将分享通过Facebook进行身份验证的代码,请引导我完成工作流程...

//serialize & deserialize

passport.serializeUser(function(user, done) {
  console.log('serializeUser: ' + user._id);
  done(null, user._id);
});
passport.deserializeUser(function(id, done) {
  // getting user with id
});

// Strategy configuration 
passport.use(new FacebookStrategy({
  clientID: config.facebook.clientID,
  clientSecret: config.facebook.clientSecret,
  callbackURL: config.facebook.callbackURL
  },

  // verify callback according to the doc
  function(accessToken, refreshToken, profile, done) {
    // checking profile in db
      }
    });
  }
));

//providing routes
app.get('/auth/facebook',
  passport.authenticate('facebook'),
  function(req, res){});
app.get('/auth/facebook/callback',
  passport.authenticate('facebook', { failureRedirect: '/' }),
  function(req, res) {
    res.redirect('/account');
  });

因此,据我所知,passport.authenticate调用了我们定义的策略,然后调用了验证回调。
但是我们在策略定义中也有一个callbackURL,我猜它会将用户重定向到'/ auth / facebook / callback'吗?但是什么时候发生?

为什么我们还要在路径中使用passport.authentication两次?
是因为我们被重定向到了另一个位置,因此第一次没有调用verify回调吗?


什么时候进行序列化和反序列化?

还如何调用Facebook登录对话框?

0 个答案:

没有答案