我正在使用 Firebase 通过 GitHub、Twitter 和 Facebook 进行身份验证,并且我知道我可以在身份验证后获得提供程序访问令牌,如下所示
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Facebook Access Token. You can use it to access the Facebook API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}
然而,在使用 React Router 4 进行身份验证后,我将用户重定向到安全区域,在这个安全区域中,我需要检索提供者访问令牌,以便我可以访问 GitHub、Twitter 和 Facebook API(对于 Twitter,我还需要获取“秘密”)细绳)。
我可以在安全区域中设置身份验证状态观察器(如下)以获取基本的用户详细信息,甚至用户链接了哪些提供商,但这并没有为我提供连接到相应提供商 API 所需的访问令牌
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
var displayName = user.displayName;
var providerData = user.providerData;
// ...
}
我应该提到,我允许用户链接多个身份验证提供者,因此我需要所有访问令牌(https://firebase.google.com/docs/auth/web/account-linking)
Thanks
遗憾的是,Firebase Auth 不管理用户的 OAuth 访问令牌。通过弹出/重定向进行 OAuth 登录后,会返回访问令牌,但之后不会返回新的访问令牌。如果您需要此功能,则需要使用 Facebook/Google 等的本机 SDK 来登录用户,然后使用 Firebase 的 OAuth 凭据进行 SignInWithCredential。这些 SDK 将为您管理 OAuth 令牌,并在过期时使用新的访问令牌更新您。如果您认为这是 Firebase 应该支持的重要功能,请提出您的理由并提交功能请求。您可以使用 Firebase 论坛:https://groups.google.com/forum/#!forum/firebase-talk或通过 Firebase 官方支持渠道请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)