【问题标题】:How do I generate an accessToken for Facebook's Graph API after I successfully authenticate using Firebase?使用 Firebase 成功进行身份验证后,如何为 Facebook 的 Graph API 生成 accessToken?
【发布时间】:2020-01-10 23:24:19
【问题描述】:
我已成功通过 Firebase 的 Facebook 实现进行身份验证,但在分析了发回的用户对象后,我没有看到我需要查询 Facebook 的 Graph API 的 accessToken。
我看到了 displayName、photoURL、email、providerId、refreshToken 和大量其他字段,但我没有看到我需要查询 Facebook 的 Graph API 的 accessToken。
【问题讨论】:
标签:
node.js
firebase
facebook-graph-api
firebase-authentication
facebook-javascript-sdk
【解决方案1】:
如果您使用弹窗或重定向登录,您可以在登录后获取 Facebook 访问令牌:
// For popups.
firebase.auth().signInWithPopup(provider).then(function(result) {
console.log(result.credential.accessToken);
});
// For redirects.
firebase.auth().getRedirectResult.then(function(result) {
if (results && result.credential) {
console.log(result.credential.accessToken);
}
});
请注意,Firebase Auth 在登录后会丢弃 Facebook OAuth 刷新令牌。如果您需要定期使用 Facebook 访问令牌,则需要使用 Facebook SDK(或 REST API)登录并使用 Facebook 访问令牌通过 signInWithCredential 直接使用 Firebase Auth 登录。