使用passport.js

时间:2017-06-13 15:08:05

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

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

使用passport-facebook

时,在哪里/如何指定Graph API版本?

Facebook电子邮件说"我们估计一个端点可能会受到影响"我想知道passport-facebook使用什么会破坏。使用passport-facebook的数万人是否会在7月10日突然减少?

2 个答案:

答案 0 :(得分: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版本的控件。

答案 1 :(得分:0)

只需在构造函数的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