Аутентификация токена Facebook Firebase в REST / GraphQL

Я следил за этим документом https://firebase.google.com/docs/auth/web/facebook-login

токен - это новый токен доступа, предоставленный клиентом

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] ] } }

Я делаю это неправильно?


person Sean Urgel    schedule 19.08.2018    source источник


Ответы (1)


Нашел решение!

На стороне клиента мне пришлось изменить 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
  }
person Sean Urgel    schedule 19.08.2018