Node Passport Facebook SDK successRedirect vs callbackURL

时间:2016-02-12 08:39:53

标签: node.js facebook facebook-graph-api

我有具体的问题 https://github.com/jaredhanson/passport-facebook

当我使用passport-facebook时。 我喜欢这个配置。

passport.use(new FacebookStrategy({
  clientID: config.facebook.facebook_app_id,
        clientSecret: config.facebook.facebook_secret_id,
        callbackURL: config.facebook.callback_url,
        passReqToCallback: true
    },
      function(req, accessToken, refreshToken, profile, done) {
     //code for success: Function A
    }

然后进行身份验证

passport.authenticate('facebook', {
        successRedirect: 'http://app.mykomae.com/#/app/dashboard',
        failureRedirect: '/auth/unauthorized'
    }));

successRedirect与callbackURL有什么区别?

当函数处理程序'函数A:上面的代码'正在打电话?

由于

1 个答案:

答案 0 :(得分:1)

callbackURL告诉facebook在用户完成身份验证表单后,哪个外部地址可以回调您的应用程序,而sucessRedirectfailureRedirect对执行的内部路由,具体取决于认证结果。

passport.authenticate(...)协调整个过程。 "快乐"流程大致如下:

  1. passport.authenticate(...)检测到有未经身份验证的用户尝试访问给定路由,将其重定向到facebook oauth;
  2. 如果facebook auth成功,则调用您的验证回调(这是您的"功能A"),它应该与您的内部用户数据库中的facebook userid匹配用户并相应地进行设置(通常创建一个用户会话);
  3. 如果一切顺利,用户将被重定向到successRedirect,这通常是/profile之类的内部路由,从那时起您可以使用上一步查找的用户数据。
  4. 我希望能够解释它。