自动验证链接

时间:2017-02-08 12:14:47

标签: firebase firebase-authentication

在我们的应用中,我们使用“每个电子邮件地址一个帐户”。我们希望用户使用我们跟踪的特定身份验证提供程序进行注册,并坚持使用它。

我今天注意到的是,如果我使用Google或Facebook提供商登录,我可以将自己的密码重置链接发送到相关的电子邮件地址,这样我就可以使用电子邮件/密码提供商。 行为略有不同,具体取决于第一个提供者:

  • 如果我先使用Google,在使用密码重置链接后,我现在可以使用任一提供程序登录,并且两者都链接到同一个firebase uid。如果我调试,我可以在我从Firebase返回的authData对象的providerDetails数组中看到。
  • 如果我先使用Facebook,在使用密码链接之后,密码提供商会完全取代Facebook,尽管它保留了旧的firebase uid。此时我无法再使用Facebook登录。

我的问题是:这种行为是否有意,并且有没有办法将其关闭?

如果用户使用Facebook(我们跟踪)登录然后忘记并发送密码重置,则可能会造成混淆。它不是世界末日,因为它们可以继续使用密码登录,但它肯定会使水变得混乱。

由于

1 个答案:

答案 0 :(得分:1)

这种行为是故意的。

对于最终用户,如果他们使用Google或Facebook登录了应用,后来他们想要恢复密码,最可能的原因是他们(或攻击者)无法使用该身份提供商登录。

用户点击密码重置链接后,Firebase会删除非电子邮件身份提供商,以防止其他人以静默方式访问该帐户。如果用户仍想添加Facebook / Twitter登录,他们可以通过手动帐户链接(如果应用程序支持)来实现。

如果用户的电子邮件服务与身份提供商相同(例如@ gmail.com用户使用Google登录应用),Firebase会优化保留身份提供商,因为没有安全风险。

相关问题