在 React 中使用 Google Provider 重新验证 Firebase 用户
Posted
技术标签:
【中文标题】在 React 中使用 Google Provider 重新验证 Firebase 用户【英文标题】:Reauthenticating Firebase user with Google Provider in React 【发布时间】:2019-02-14 09:38:12 【问题描述】:我正在为我的网络项目使用 firebase,并希望允许用户删除他们的帐户,根据 Firebase,这需要 reauth。我在让他们的 user.reauthenticateAndRetrieveDataWithCredential
工作时遇到了很多麻烦。
具体来说,我不知道如何生成AuthCredential
以使用GoogleAuthProvider.credential()
method 传递给它,因为我不知道如何获取用户的ID 令牌或访问令牌。
我尝试了user.getIdToken()
(here),这给了我一个错误,即凭据不是由 Google 颁发的。
要求用户通过弹出窗口再次登录,然后使用res.credential
accessToken 或 idToken 有效,但随后允许他们在当时登录到其他用户,这不是我想要的。
关于如何从当前登录的用户那里获取有效的 idToken 进行重新认证的任何提示?
谢谢!
【问题讨论】:
【参考方案1】:只需使用reauthenticateWithPopup
/reauthenticateWithRedirect
。
firebase.auth().currentUser.reauthenticateWithPopup(new firebase.auth.GoogleAuthProvider())
.then(function(userCredential)
// You can now delete the user:
return firebase.auth().currentUser.delete();
)
.catch(function(error)
// Credential mismatch or some other error.
);
【讨论】:
如果我弄错了请纠正我,但我不认为这是一种现有的身份验证方法? firebase.google.com/docs/reference/js/firebase.auth.Auth 糟糕,我的错。它在用户身上。我更新了我的答案。文档可在此处获得:firebase.google.com/docs/reference/js/…以上是关于在 React 中使用 Google Provider 重新验证 Firebase 用户的主要内容,如果未能解决你的问题,请参考以下文章
在 React 中使用 Firebase 进行 Google 登录以进行 chrome 扩展
ANDROID Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER