Firebase Auth - 仅为现有用户激活 SSO 登录方法

Firebase Auth - Activating SSO login methods for existing users only

我想在我的 Firebase 网络应用程序中为用户实施 SSO 登录,但仅限于拥有现有帐户的用户。当我添加例如Firebase 中的 Microsoft 提供商并在 Web 应用程序中实施所需的 UX 流程,任何拥有 Microsoft 帐户的人都可以使用它登录,然后创建一个新的用户帐户(如果他们之前没有登录过)。我想将此限制为以下用户:

是否有推荐的方法来防止 SSO 的 Firebase 身份验证中的默认行为,以便我可以在让用户登录之前检查具有相同电子邮件的现有帐户及其批准的登录方法 and/or 创建新帐户?

在 Firebase 身份验证中没有 built-in 方法来执行此操作,因为它不区分 OAuth 用户的 sign-up 和 sign-in。

实现这一点的典型方法是在您的应用程序和您的 server-side 逻辑都可以找到它的地方创建一个允许的用户列表(比如在 Firebase 的数据库之一),然后检查这个so-called 在您的 client-side 和 server-side 应用程序代码(和安全规则)中加入白名单,在用户登录之后和为他们执行任何其他应用程序逻辑之前。

在应用程序本身中,您可以将其显示为“无法登录”给用户,因为(尽管您调用 Firebase API 并在那里签名)他们还没有完成 sign-in 进入您的应用程序本身。