繁体   English   中英

管理两种类型的用户 FIREBASE auth + REACTJS

[英]Manage two types of users FIREBASE auth + REACTJS

我正在制作一个有用户和管理员的系统,管理员可以做一些独特的事情,比如(“删除用户/访问管理仪表板 ecc...”)。

对于前端,我使用 ReactJs,对于身份验证,我使用 firebase auth(存储用户的身份验证信息),对于用户数据,我有一个 Express API,可以将数据保存在 PostgreSql 数据库中。

因此,当新用户注册时,电子邮件和密码保存在 firebase auth 中,其他数据(如姓名、姓氏、地址 ecc...)将存储在 PostgreSQl db 中,其中每个用户都从 firebase 提供的唯一 UID 识别之后登记。

下面的小图显示了注册系统的工作原理

在此处输入图片说明

管理员将手动注册,在 PostgreSql 中,我有一个名为 Admins 的表,它将存储管理员的额外数据(类似于用户数据,但具有更多属性)。

但我现在的问题是,如果当前登录的用户是管理员或普通用户,我如何检查我的前端?

在此处输入图片说明

也许登录后检查登录用户的 uid 是否在管理员 postgreSql 表中? 但这在执行方面太昂贵了,对吗??? 因为每个页面重新加载或类似的我都必须与后端重复检查。 因为 firebase 以相同的方式管理用户和管理员,只有我的后端知道用户是否是管理员。

在此处输入图片说明

有谁知道是否有一个很好的解决方案来处理这种情况?

谢谢! 戴维德。

最好使用 Firebase 管理员的“setCustomUserClaims”函数添加到新管理员的身份验证令牌。 您可以添加类似“admin”:true 的内容。 然后,当用户进行身份验证时,您的前端代码可以检查该令牌是否存在。 这是 Firebase 指南的链接: https : //firebase.google.com/docs/auth/admin/custom-claims

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM