【问题标题】: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 是否为真,如果是,则继续。否则,您会将它们注销并将它们重定向到显示“此用户未获批准”的页面