【发布时间】:2020-05-05 11:08:20
【问题描述】:
我目前在 Firebase 身份验证上设置了“每个电子邮件地址一个帐户”设置。问题是,当用户使用已用于创建电子邮件/密码帐户的同一电子邮件地址登录 Google OAuth 时,Google OAuth 会自动将电子邮件/密码提供商替换为自己的。
我在错误处理过程中设置了以下设置,以便可以提示用户选择是否链接两个帐户:
if (error.code === 'auth/email-already-in-use' || error.code === 'auth/credential-already-in-use' || error.code === 'auth/account-exists-with-different-credential')
但 Google OAuth 甚至不会导致我发现任何错误。它简单而安静地替换现有帐户。
【问题讨论】:
-
某些提供商是某些电子邮件地址的受信任提供商。具体来说,Google 提供商是
@google.com、@gmail.com和@googlemail.com地址的受信任提供商,而 Microsoft 是@outlook.com地址的首选提供商。有关详细信息,请参阅stackoverflow.com/q/40766312、github.com/firebase/FirebaseUI-Android/issues/1180、groups.google.com/d/msg/firebase-talk/ms_NVQem_Cw/8g7BFk1IAAAJ 和 stackoverflow.com/a/46459975/209103 -
@FrankvanPuffelen 谢谢你。当用户选择在更远的地方这样做时,是否可以取消两个帐户的链接?我知道这可以通过
user.unlink(providerId)与其他提供商一起完成,但我想知道这是否同样适用于“受信任的提供商” -
我不这么认为,因为据我所知帐户没有关联。
标签: javascript firebase react-native firebase-authentication google-oauth