使用 Firebase 和 ReactJS 的基于角色的身份验证

Posted

技术标签:

【中文标题】使用 Firebase 和 ReactJS 的基于角色的身份验证【英文标题】:Role based authentication using Firebase and ReactJS 【发布时间】:2021-09-28 07:38:17 【问题描述】:

这是一个寻求建议的帖子

我想要两种用户类型:

    用户 管理员

我将仅使用 Firebase 进行身份验证部分。现在让我们看看我的用户可以做什么:

    注册/登录 创建帖子并将其设为公开/私密 收集帖子并将其设为公开/私有

这是我的管理员可以执行的操作:

    登录 对用户的 CRUD 操作 查看公开/私人帖子并将其删除 查看公开/私人收藏的帖子并将其删除

我的问题是我可以只使用 Firebase 和 ReactJS 来完成所有这些工作吗? 还是我需要自定义后端?

如果我只想要一个 RBAC,我的管理员和用户身份验证规则应该是什么样的?

这就够了吗?(在一篇文章中找到):


  "rules": 
    "users": 
      "$user": 
        ".write": "auth !== null && ((auth.token.isAdmin === true && data.child('isAdmin').val() === false) || auth.uid === $user)",
        ".read": "auth !== null && ((auth.token.isAdmin === true && data.child('isAdmin').val() === false) || auth.uid === $user)"
      ,
      ".write": "auth !== null && auth.token.isAdmin === true",
      ".read": "auth !== null && auth.token.isAdmin === true"
    
  

【问题讨论】:

【参考方案1】:

安全规则足以满足您的要求。您当前的安全规则只允许用户读/写他们自己的节点,而管理员可以读/写任何用户的数据。

自定义后端只是您使用Admin SDK 并自行授权用户而不是使用安全规则的替代方案。但这对于您正在尝试做的事情来说听起来有点过头了,除非您需要做其他事情,例如在添加数据库之前处理数据。

【讨论】:

你能提供一个你建议的样本吗?或任何文章?我是 firebase 新手,所以我真的需要一些参考 @FahimHoque 您拥有的安全规则将按预期工作。您是否要求提供自定义服务器的示例? 嗨,不,我不是要一个自定义服务器的例子。我已经编写了一些规则,但我无法将它们与我的 react 项目集成。是否有任何参考或 github 存储库可以让我了解使用 react+firestore 进行身份验证的一些想法?

以上是关于使用 Firebase 和 ReactJS 的基于角色的身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ReactJS 应用程序开发和测试 Firebase 可调用函数?

如何使用 nodejs 和 reactjs 设置 firebase 模拟器?

每次有人使用 firebase 和 Reactjs 访问页面时计算浏览量

[在ReactJS中使用Firebase排序数据

如何将聊天中的加载图像替换为使用 ReactJS 上传到 Firebase 存储的图像?

如何使用 apollo Reactjs 客户端刷新 Firebase IdToken