firebase - Firebase:在验证时禁用帐户或在启用后发送验证
问题描述
在我正在处理的 Flutter + Firebase 应用程序中,用户创建一个帐户(使用 Firebase Auth)并收到一封验证电子邮件。但是,此应用程序仅适用于选定数量的人,因此我将其实现为默认禁用新用户并需要由应用内管理员启用。事实证明,如果您的帐户被禁用,验证链接将不起作用,因此新用户需要等待管理员启用他们的帐户才能进行验证。这并不理想,所需的工作流程将是以下之一:
用户创建帐户 > 帐户被自动禁用 > 管理员启用帐户 > 发送验证电子邮件(首选) 用户创建帐户 > 发送验证电子邮件 > 验证时禁用帐户 > 管理员启用帐户 > 用户收到帐户已启用的通知(稍微不太可取因为这最后一步)
选项 1 需要在验证帐户后通知某些功能,以便可以禁用它,我找不到任何关于这是否可能的文档。选项 2 需要以一些奇怪的方式接管 Firebase Auth 发送的验证电子邮件。我的问题是:选项1有可能吗?如果没有,如何处理选项 2?
解决方案
要通过客户端 SDK 或 REST API 验证帐户的电子邮件地址,用户需要登录该帐户。如果您在 Firebase 身份验证中禁用某个帐户,用户将无法登录该帐户进行验证。
您的选择是:
要么自己处理整个流程,然后使用 Admin SDK 验证并启用帐户。文档中没有这方面的分步指南。
或者不要在 Firebase 身份验证中禁用该帐户,而只允许用户在验证其帐户后使用该应用并访问数据。
第二种选择是迄今为止最常见的,因为您基本上只是将流程的身份验证部分(用户证明其凭据)与授权部分(用户获得对应用程序及其数据的访问权限)分开。
推荐阅读
- c# - 触发点击事件后,新面板未在 Windows 窗体上打开
- arrays - 你如何在 Kotlin 中定义一组函数(函数)?
- django-rest-framework - 为什么 Postman 和 Django API 框架中显示了额外的反斜杠,而在我的数据库中却没有?
- bash - 如何使用 grep 提取不重复的字符串模式
- google-sheets - 在另一个键范围中查找一个键范围以获取所有对应的值,而不仅仅是第一个
- python - 如何使用 R 将十六进制数据转换为实数
- r - 有没有办法在反应时解析 url
- linux-kernel - RHEL 8.5 中的 task_struct 和 rcu_read_unlock
- api - 如何集成 NPCI UPI API?
- xcode - Flutter:在 MacOs Big Sur (VirtualBox) 上设置 Android Studio 后无法运行程序