【问题标题】:Where/how to specify the API version using passport.js在哪里/如何使用 passport.js 指定 API 版本
【发布时间】:2017-11-15 10:58:24
【问题描述】:

我正在使用 passport.jspassport-facebook 登录我的 Node.js Web 应用程序。这只是一个简单的登录请求(每次同一个用户登录时,我只对同一个唯一 ID 感兴趣)。这个应用程序已经运行了一段时间。但是,Facebook 刚刚提醒我,我正在使用 Graph API 2.3,它将于 7 月 10 日过时。

使用 passport-facebook 时,我在哪里/如何指定 Graph API 版本?

Facebook 电子邮件显示“我们估计一个端点可能会受到影响”。我想知道passport-facebook 使用什么会破坏。使用passport-facebook 的数万人会不会也将在7 月10 日突然断网?

【问题讨论】:

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


    【解决方案1】:

    要回答您的主要问题,您可以在策略选项中指定profileURL

    const strategy = new FacebookStrategy({
        clientID: FACEBOOK_APP_ID,
        clientSecret: FACEBOOK_APP_SECRET,
        callbackURL: CALLBACK_URL,
        profileURL: 'https://graph.facebook.com/{API_VERSION}/me'
      },
      (accessToken, refreshToken, profile, cb) => { ... }
    );
    

    这似乎没有记录在任何地方;我必须查看source code 才能找到它。默认值为'https://graph.facebook.com/v2.5/me'

    请务必检查您的app settings,因为它们具有指定 API 版本的控件。

    【讨论】:

      【解决方案2】:

      只需在构造函数的graphAPIVersion属性中指定版本即可:

      passport.use(new FacebookStrategy({
          graphAPIVersion: "v4.0",
          clientID: process.env.FACEBOOK_CLIENT_ID,
          clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
          callbackURL: process.env.CALLBACK_URL
      }
      

      来自源代码:https://github.com/jaredhanson/passport-facebook/blob/master/lib/strategy.js#L50

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-28
        • 2016-04-24
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多