Где / как указать версию API с помощью passport.js
Я использую passport.js
а также passport-facebook
для входа в мое веб-приложение Node.js. Это простой запрос на вход в систему (меня интересует только один и тот же уникальный идентификатор каждый раз, когда один и тот же пользователь входит в систему). Это приложение работает нормально в течение некоторого времени. Однако Facebook только что предупредил меня, что я использую Graph API 2.3, который 10 июля устареет.
Где / как указать версию Graph API при использовании passport-facebook
?
В электронном письме Facebook говорится: "Мы предполагаем, что одна конечная точка может быть затронута". Интересно, что passport-facebook
использует, что сломается. Будут ли десятки тысяч людей, использующих passport-facebook
также внезапно прекратить 10 июля?
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) => { ... }
);
Это, кажется, нигде не задокументировано; Мне пришлось искать в исходном коде, чтобы найти его. Значением по умолчанию является 'https://graph.facebook.com/v2.5/me'
,
Не забудьте также проверить настройки вашего приложения, так как они имеют элементы управления для определения версии API.
Просто укажите версию в 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