在 REST / GraphQL 中验证 Firebase Facebook 令牌

Authenticating Firebase Facebook Token in REST / GraphQL

我关注了这篇文档https://firebase.google.com/docs/auth/web/facebook-login

token是客户端给的新的accessToken

const context = ({req}) => {
      const credential = firebase.auth.FacebookAuthProvider.credential(token)

  try {
    firebase.auth().signInAndRetrieveDataWithCredential(credential)
  } catch(error) {
    console.error(error)
  }
}

但我收到此错误(100% 确定令牌已正确复制)

{ [Error: Your API key is invalid, please check you have copied it correctly.]
  code: 'auth/invalid-api-key',
  message:
   'Your API key is invalid, please check you have copied it correctly.' }
{ _extensionStack:
   GraphQLExtensionStack { extensions: [ [CacheControlExtension] ] } }

我做错了吗?

找到解决方案!

在客户端,我必须通过以下方式将 facebook accessToken 更改为 IdToken:

getIdToken = async () => {
    const provider = new firebase.auth.FacebookAuthProvider()
    const result = await firebase.auth().signInWithPopup(provider)

    const IdToken = await firebase.auth().currentUser.getIdToken(true)
}

然后在后台验证IdToken

try {
    const decodedToken = await admin.auth().verifyIdToken(token)
    console.log(decodedToken)
  } catch (error) {
    // error code
  }