在 nextjs 应用程序中使用 Firebase 启用多个身份验证提供程序的正确方法是什么? 2023 年 9 月 15 日后,Firebase 对所有项目启用了电子邮件枚举保护。如果用户已使用电子邮件/密码注册,现在尝试使用 Google 登录,则该提供商将在 firebase 中被覆盖。我没有尝试过其他注册提供商。但是,我如何确保之前使用电子邮件/密码注册的用户可以使用 Google 和 Apple 注册进行注册,同时仍保留密码。 使用两个 SAML 提供程序时会出现什么行为?使用 Google 注册并使用 Apple 登录。
2023 年 9 月 15 日后,Firebase 对所有项目启用了电子邮件枚举保护。
是的,没错。从 2023 年 9 月 15 日开始,所有新 Firebase 项目默认启用电子邮件枚举保护。
如果用户已使用电子邮件/密码注册,现在尝试使用 Google 登录,则该提供商将在 Firebase 中被覆盖。
此行为与电子邮件枚举保护没有任何关系。正如 @FrankvanPuffelen 在他的评论中已经提到的,这是自 2016 年以来一直有效的默认机制。请查看下面的更多信息:
虽然
存在,但如果启用了电子邮件枚举保护,则不起作用。fetchSignInMethodsForEmail
是的,这也是正确的。电子邮件枚举保护功能提高了 Firebase 项目用户身份验证帐户的安全性,但它禁用了
fetchSignInMethodsForEmail()
方法,该方法之前建议在标识符优先机制中使用。
虽然您可以为 Firebase 项目禁用电子邮件枚举保护,但我建议您不要这样做,因为迟早您将无法再这样做。