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

问题描述 投票:0回答:2

这是一篇寻求建议类型的帖子

我想要两种用户类型:

  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"
    }
  }
}
node.js reactjs firebase firebase-realtime-database firebase-security
2个回答
0
投票

安全规则足以满足您想要做的事情。您当前的安全规则允许用户仅读取/写入自己的节点,而管理员可以读取/写入任何用户的数据。

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


0
投票

你能给我你的代码或 git 链接吗?我想在我的项目中使用 Firebase 和 ReactJS 进行基于角色的身份验证

© www.soinside.com 2019 - 2024. All rights reserved.