【问题标题】:How to make admin approve new user firebase auth flutter?如何让管理员批准新用户 Firebase 身份验证?
【发布时间】:2021-11-10 23:13:04
【问题描述】:

我有一个项目经理应用程序,我想制作 3 个角色(管理员 - 工程师 - 技术人员) 管理员通过发送 OTP(一次性密码)进行注册来批准新用户,然后他们才能向 firebase 进行身份验证。 这样没有管理员权限,任何人都无法在 Firestore 上创建新帐户。 我正在使用颤振 2.2 和 Firebase 电子邮件/密码身份验证。

【问题讨论】:

  • 您可能对此article 感兴趣,它解释了如何创建管理模块来管理 Firebase 用户的访问权限和角色。

标签: firebase flutter authentication firebase-authentication one-time-password


【解决方案1】:

基本上您要做的是设置基于角色的访问控制 (RBAC)。

这是一个可能适合您的用例的解决方案: 您可以按照此处的说明进行操作:How to disable Signup in Firebase 3.x 禁用注册并仅允许 admin-sdk 创建帐户。一旦用户申请(可能通过创建一个新的 Firestore 文档),管理员就可以查看他们的应用程序并使用 admin sdk 创建一个新帐户并通知用户。

RBAC 系统更常见的解决方案是使用自定义声明控制访问。以下是它的工作原理:

1. onCreate 云函数触发器会通知您的管理员潜在的新用户(例如,将文档添加到 Firestore 集合)。

2.然后管理员使用 admin sdk 查看这些用户并将其分配给管理员、工程师或技术角色/自定义声明。

3.您在整个 Firebase 服务(Firestore、RTDB、存储、函数)中使用这些自定义声明来控制它们在您的项目中的访问。

4.如果管理员希望拒绝用户,他们可以使用 admin sdk 删除该帐户。

【讨论】:

    【解决方案2】:

    我这样做的方法是在单独的集合中将首选项与每个用户相关联。您可以让您的登录功能检查 userId.isApproved 是否为真,如果是,则继续。否则,您会将它们注销并将它们重定向到显示“此用户未获批准”的页面

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 2013-07-10
      • 1970-01-01
      • 2021-09-19
      • 2021-11-09
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多