Javascript 使用嵌套角色&;React Redux中的权限

Javascript 使用嵌套角色&;React Redux中的权限,javascript,node.js,reactjs,redux,Javascript,Node.js,Reactjs,Redux,我的问题更多的是,对于一个用户可能具有嵌套的角色和权限集的应用程序,如何获取React应用程序的角色列表。您是否在用户登录时提前发送整个权限列表/目录树,然后将其隐藏起来,以便以后可以对其进行迭代 例如,假设一个用户在角色1中,角色1有一组权限,但他们也在几个其他角色中,或者在一个角色中甚至可能有子角色。你基本上是把这个列表放在最前面并存储在redux商店里吗 因此,有两个问题: 1)您何时以及如何获取角色和权限列表(何时,他们登录?您在调用什么,权限端点,还是在他们登录时它会返回会话响应负载?

我的问题更多的是,对于一个用户可能具有嵌套的角色和权限集的应用程序,如何获取React应用程序的角色列表。您是否在用户登录时提前发送整个权限列表/目录树,然后将其隐藏起来,以便以后可以对其进行迭代

例如,假设一个用户在角色1中,角色1有一组权限,但他们也在几个其他角色中,或者在一个角色中甚至可能有子角色。你基本上是把这个列表放在最前面并存储在redux商店里吗

因此,有两个问题:

1)您何时以及如何获取角色和权限列表(何时,他们登录?您在调用什么,权限端点,还是在他们登录时它会返回会话响应负载?或者其他方式?)

2)您如何存储和迭代该列表

在UI端,您需要使用这样的列表执行一些操作,例如隐藏/显示删除按钮,根据特定角色和权限为用户隐藏/显示任何内容,所以我想知道人们是如何做到这一点的


您点击的后端API还检查用户是否可以执行任何http谓词,但这不是我在这里所指的,我指的是在UI端遍历和检查角色以处理用户行为/UI组件行为。其中一些问题可以通过确定用户能否成功调用后端REST API来解决,但如果您有一组复杂的角色,例如,当用户登陆某个组件时,您仍然需要以某种方式预先列出该列表,以便执行某些预先行为。

我将从服务器端可能的多个角色中构建已合并的权限,例如,具有以下结构:

{
  "posts": ["add", "view"],
  "comments": ["add", "view", "delete", "change"]
}
何时发送几乎不取决于应用程序的设计。作为对登录的响应完全有意义。关键的一点是,在组件需要数据之前,数据是可用的。然后我会将这些权限存储在redux存储中,并连接相关组件,例如:

const Comments=({Comments,hasDeletePermission,hascangepermissions})=>{
    {comments.map(comment=>(
  • {comment}

    {hasChangePermission&&change} {hasDeletePermission&&delete}
  • ))}
}; const mapStateToProps=(state,ownProps)=>({ hasDeletePermission:state.user.permissions['comments'].包括('delete'), hasChangePermissions:state.user.permissions['comments'].包括('change'), }); 导出默认连接(MapStateTops)(注释);

您还可以为匿名用户设置默认权限值。

是的,因此您可以从后端提前获取角色列表,这正是我一直在逃避的,是的,我们可以从会话响应中提前获取该列表。我们有一个会话端点,我点击了它,我们只是将权限作为返回的会话响应的节点返回json@PositiveGuy听起来很合理。简单提示一下:如果你使用数字作为权限的值,那么组合和过滤它们真的很容易。例如,视图=1,添加=2,编辑=4,删除=8。然后可以这样设置:
“posts”:查看|添加
。和过滤器这样的<代码>(POST和View)/显示帖 @ Trxn考虑在成功登录后从后端提供权限的情况,并将用户重定向到主页。登陆主页后,如果用户刷新页面,则存储在redux存储中的权限将被删除,在这种情况下该怎么办?