仅使用HTTP将Google登录ID令牌转换为Firebase IdToken

时间:2018-12-10 20:26:29

标签: firebase firebase-authentication google-cloud-firestore google-authentication

我正在尝试使用React Native的Firestore HTTP REST API。

我只使用HTTP(没有SDK)。

用户使用Google登录(react-native-google-signin)登录后,我有一个idTokenaccessToken

我希望能够将其中之一转换为Firebase idToken,可以在'Authorization': 'Bearer ${firebaseIdToken}' HTTP标头中使用仅使用Firebase REST HTTP API

https://firebase.google.com/docs/reference/rest/auth/#section-verify-custom-token

  • 输入“令牌” =“ Firebase Auth自定义令牌”。
    • Google登录中的idTokenaccessToken都不在这里工作。
    • 我需要将Google idToken发送到服务器以将其转换为Firebase身份验证idToken吗?

在使用这些SDK调用进行身份验证之前,

const cred = firebase.auth.GoogleAuthProvider.credential(idToken, accessToken);
await firebase.auth().signInAndRetrieveDataWithCredential(cred)
const firebaseIdToken = await firebase.auth().currentUser.getIdToken();
const headers = { 
    'Authorization': `Bearer ${firebaseIdToken}`
}

相关链接

https://github.com/react-native-community/react-native-google-signin https://firebase.google.com/docs/auth/admin/create-custom-tokens

1 个答案:

答案 0 :(得分:1)

您可以使用REST API交换Firebase ID令牌的OAuth凭证: https://firebase.google.com/docs/reference/rest/auth/#section-sign-in-with-oauth-credential