2017-02-13 2 views
1

firebase reauthenticate метод ожидает credential объекта, например:Firebase повторной идентификацию социального поставщику

const token = await firebase.auth.currentUser.getToken(); 
const credential = firebase.auth.FacebookAuthProvider.credential(token); 

Если я пытаюсь сделать reauthenticate я получаю сообщение об ошибке, что маркер доступ недействителен

firebase.auth.currentUser.reauthenticate(credential); 

Ошибка:

code:"auth/internal-error"

{"domain":"global","reason":"invalid","message":"invalid access_token, error code 43."}

ответ

3

Вам необходимо использовать Закон токен доступа cebook, а не токен Firebase ID. firebase.auth.currentUser.getToken(); возвращает токен Firebase ID.

Вам необходимо передать токен доступа к facebook при инициализации аутентификационных данных в facebook.

const credential = firebase.auth.FacebookAuthProvider.credential(facebookAccessToken); 

Для Reauthenticate социального провайдера, вы можете следующим образом: Firebase: recent login requested

+0

Спасибо, да это помогло. В основном мне приходилось сохранять 'accessToken', который возвращается с объектом auth после' await firebase.auth.signInWithPopup (provider) ', тогда я могу использовать его вместо токена firebase. спасибо – Yuri