首页 > 解决方案 > Firebase:在验证时禁用帐户或在启用后发送验证

问题描述

在我正在处理的 Flutter + Firebase 应用程序中,用户创建一个帐户(使用 Firebase Auth)并收到一封验证电子邮件。但是,此应用程序仅适用于选定数量的人,因此我将其实现为默认禁用新用户并需要由应用内管理员启用。事实证明,如果您的帐户被禁用,验证链接将不起作用,因此新用户需要等待管理员启用他们的帐户才能进行验证。这并不理想,所需的工作流程将是以下之一:

用户创建帐户 > 帐户被自动禁用 > 管理员启用帐户 > 发送验证电子邮件(首选) 用户创建帐户 > 发送验证电子邮件 > 验证时禁用帐户 > 管理员启用帐户 > 用户收到帐户已启用的通知(稍微不太可取因为这最后一步)

选项 1 需要在验证帐户后通知某些功能,以便可以禁用它,我找不到任何关于这是否可能的文档。选项 2 需要以一些奇怪的方式接管 Firebase Auth 发送的验证电子邮件。我的问题是:选项1有可能吗?如果没有,如何处理选项 2?

标签: firebaseflutterfirebase-authenticationemail-verification

解决方案


要通过客户端 SDK 或 REST API 验证帐户的电子邮件地址,用户需要登录该帐户。如果您在 Firebase 身份验证中禁用某个帐户,用户将无法登录该帐户进行验证。

您的选择是:

  1. 要么自己处理整个流程,然后使用 Admin SDK 验证并启用帐户。文档中没有这方面的分步指南。

  2. 或者不要在 Firebase 身份验证中禁用该帐户,而只允许用户在验证其帐户后使用该应用并访问数据。

第二种选择是迄今为止最常见的,因为您基本上只是将流程的身份验证部分(用户证明其凭据)与授权部分(用户获得对应用程序及其数据的访问权限)分开。


推荐阅读