【问题标题】:Firebase recover password transforms account typeFirebase 恢复密码转换帐户类型
【发布时间】:2023-03-10 02:50:01
【问题描述】:

我们正在使用 Firebase 构建一个 angular 5 应用。 我们允许用户使用电子邮件+密码或谷歌帐户登录,我们不允许有多个帐户与同一个电子邮件地址相关。 我们构建了一个表单,允许用户在忘记电子邮件密码凭据时请求密码重置电子邮件,并且如果用户拥有电子邮件+密码帐户,则可以完美运行。

当请求重置电子邮件以提供 google 帐户时,就会出现问题。我们预计 firebase 会抛出错误,不允许发送电子邮件,但电子邮件已发送,并且如果用户继续重置电子邮件帐户已转换从 google 类型为电子邮件+密码.

有没有办法防止这种行为?

【问题讨论】:

  • 在当前用户对象下,有一个名为“providerData”的属性,它是一个与该帐户关联的所有身份验证提供者的数组。数组中的每个对象都包含 providerID,对于 Google,它是“google.com”,对于电子邮件和密码,它是“password”。也许您可以使用此信息来决定仅向具有电子邮件和密码身份验证的用户显示此表单。 firebase.google.com/docs/reference/js/…

标签: firebase firebase-authentication


【解决方案1】:

没有办法阻止这种情况。当用户重设密码时,他们是在有意识地做出这样做的决定。 Firebase 提供了一种恢复电子邮件帐户的方法,以防它被劫持。在此过程中,所有提供商都被取消链接,并在帐户上设置了密码。

您有办法检查电子邮件是否与谷歌提供商相关联。查看fetchSignInMethodsForEmailfetchProvidersForEmail API。这些 API 将返回与电子邮件关联的登录方法或提供程序的数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2019-08-26
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多