2017-02-13 135 views
1

火力reauthenticate方法需要credential对象,例如:火力地堡重新验证社会提供商

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

如果当时我尝试做reauthenticate我收到错误消息的accessToken无效

firebase.auth.currentUser.reauthenticate(credential); 

错误:

code:"auth/internal-error"

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

回答

3

您需要使用Fa cebook访问令牌,而不是Firebase ID令牌。 firebase.auth.currentUser.getToken();返回Firebase ID令牌。

您需要在初始化Facebook身份验证凭据时传递Facebook访问令牌。

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

为了重新验证一个社会提供商,您可以执行以下操作: Firebase: recent login requested

+0

谢谢你,是的,这帮助。基本上我必须保存在'await firebase.auth.signInWithPopup(provider)'后的auth对象返回的'accessToken',然后我可以使用它代替firebase令牌。谢谢 – Yuri