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

时间:2021-07-20 20:18:13

标签: node.js reactjs firebase firebase-realtime-database firebase-security

这是一个寻求建议的帖子

我想要两种用户类型:

  1. 用户
  2. 管理员

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

  1. 注册/登录
  2. 创建帖子并将其设为公开/不公开
  3. 收集帖子并设为公开/私有

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

  1. 登录
  2. 对用户的 CRUD 操作
  3. 查看公共/私人帖子并删除它们
  4. 查看公共/私人帖子集并删除它们

我的问题是我可以只使用 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 个答案:

答案 0 :(得分:1)

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

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