Oauth 2.0 试图了解Firebase身份验证每个电子邮件地址和可信提供商一个帐户
当在Firebase项目中为每个电子邮件地址启用一个帐户进行Firebase身份验证时,似乎有一些附加规则适用于身份验证过程。不同的提供者似乎分为两类,可信提供者和不可信提供者。如果用户在任何时候通过受信任的提供程序登录,则用户以前登录过的所有不受信任的提供程序都将从帐户中删除。此外,用户将永远不会被允许再次登录不受信任的提供商。提供商是否可信似乎取决于使用提供商创建的新帐户是否通过向创建新帐户的地址发送验证电子邮件来专门验证该帐户 我似乎找不到一个关于哪些提供者是可信的和不可信的全面列表。通过在我的应用程序中实施这些解决方案,我发现: 受信任的提供商:Oauth 2.0 试图了解Firebase身份验证每个电子邮件地址和可信提供商一个帐户,oauth-2.0,firebase-authentication,Oauth 2.0,Firebase Authentication,当在Firebase项目中为每个电子邮件地址启用一个帐户进行Firebase身份验证时,似乎有一些附加规则适用于身份验证过程。不同的提供者似乎分为两类,可信提供者和不可信提供者。如果用户在任何时候通过受信任的提供程序登录,则用户以前登录过的所有不受信任的提供程序都将从帐户中删除。此外,用户将永远不会被允许再次登录不受信任的提供商。提供商是否可信似乎取决于使用提供商创建的新帐户是否通过向创建新帐户的地址发送验证电子邮件来专门验证该帐户 我似乎找不到一个关于哪些提供者是可信的和不可信的全面列表。通过
- 苹果
- 谷歌
- Microsoft(如果创建帐户时使用的电子邮件为 a@outlook.com或@hotmail.com)
- 脸谱网
- Microsoft(如果创建帐户时使用的电子邮件不是@outlook.com或@hotmail.com)
- 谷歌(前提是由谷歌发布,例如@gmail.com)
- 雅虎(前提是由雅虎发布,例如@Yahoo.com)
- Microsoft(前提是由Microsoft发布,例如@outlook.com)
- 苹果(总是经过验证的。苹果的卖点是账户经过验证和多因素认证)
- 电子邮件链接验证
- 脸谱网
- 推特
- GitHub
- 谷歌、雅虎、微软等,只要它们不是由IdP发行的
- 未经电子邮件验证的电子邮件/密码
FialBaseAuthTo安全且不考虑某些提供者验证,因为在某些情况下,电子邮件被验证一次但不连续验证(在某些情况下,IPSP允许您在验证后更改电子邮件而不需要重新验证)。 解释未经验证账户敏感性的最佳方法如下: 1.攻击者使用电子邮件向未经验证的提供商(密码)注册victim@example.com他们不拥有的 2.电子邮件所有者注册victim@example.com使用经过验证的提供商Google
如果帐户未重置且密码未链接,则攻击者将保持对其不拥有的帐户的访问权限。要解决此问题,用户必须在步骤2之前验证电子邮件(通过发送电子邮件验证)。通过这样做,登录谷歌将自动合并帐户并保留密码 这就是为什么在某些情况下会出现错误:如果您不同意FialBaseAuthand并希望将脸谱网视为已验证的提供者,您可以随时使用E.P/P>在脸谱网登录后将电子邮件设置为验证。
希望这有助于澄清这种行为。当您编写“需要抛出链接的错误,是不是
FirebaseAuthUserCollisionException
”时,根据文档,应该在用户每次尝试使用第二个Bprovider(链接到)登录时抛出该错误a@b.com)当已经使用Provider创建了帐户时(链接到a@b.com)但事实上,我发现这篇文档有误导性,因为谷歌和苹果使用相同的电子邮件地址登录(当电子邮件地址共享时)以静默方式合并,而不是抛出FirebaseAuthUserCollisionException
。这是否意味着,当受信任的提供者共享相同的电子邮件地址时,它们会合并到单个帐户中,但如果其中一个是不受信任的提供者,则会抛出github上的FirebaseAuthUserCollisionException
?线程: