首页 > 解决方案 > React 基于角色的授权

问题描述

我目前正在开发一个反应应用程序,其中用户具有角色,我在这些用户之间共享了许多组件,但存在一些差异。我对如何处理基于角色的授权有点困惑,我有以下问题:

标签: reactjs

解决方案


如果我可以投入两分钱,我不会只选择一个选项(创建新组件或使用 if-else)。相反,我将根据条款和条件同时使用它们。条款和条件是

  1. 如果组件不复杂,我将使用 if-else 或条件渲染
  2. 如果组件很复杂,我宁愿创建新的单独组件以避免通过在一个组件中混合所有条件来创建错误
  3. 如果我选择第 1 点,但后来组件变得更复杂,我宁愿为新条件创建新组件,这样旧组件就不会损坏并且新组件仍然可以处理

此外,根据我的经验,我认为最好不要根据角色对您的功能进行分类。因为,如果最初是只能由角色 A 访问的功能。那么,现在可以通过角色 B 访问该功能的增强功能。然后,您需要更新您的代码。

相反,您可以使用“特权”之类的东西(这只是概念/命名)。此特权的工作方式如下:每个功能都有自己的特权。然后,将权限分配给有资格访问该功能的任何角色。

例如,按钮/组件/功能 A 具有名为 Execute_A_Privilege 的权限。如果最初,Execute_A_Privilege 只赋予角色 A,那么角色 B 也想要它,您只需在数据库中分配它,然后角色 B 无需更新代码即可获得该功能。


推荐阅读