前端如何控制用户权限呢

用的react,我的想法是在后台用户库里面加上admin:true,然后前台先验证登陆用户是否为admin,如果是就条件渲染出admin要使用的东西,感觉缺陷很大阿,求各位大大给小弟说一下,权限管理是怎样设计的阿

看了大大们的答案我有想法了,在react设一个全局变量显示权限操作,给后台传数据时,后台先验证当前操作用户是否有amdin权限~

阅读 5.3k
6 个回答

权限无论什么时候,都应该交给后台来控制,前端最多就是按需展示,用户到底有没有权限,应该是后台进行判断的。永远不要相信前端传的数据,前端不是一个安全的环境。

先说一下对权限的看法:

前端要做的是,不让正常操作的用户发出不具有权限的api. 后端要做的是, 在接到权限用户不匹配的请求不做数据操作并返回某些格式的数据(来使前端判断并提示).

那么前端关于权限的事情只有2件:

  • 第一类别, 隐藏不具权限的操作按钮 或 点击不具权限的按钮后不发请求直接提示 再或者根据当前用户拥有的权限来加载数据.
  • 第二类别, 配合后端对权限的验证来进行登录过程或每次请求带上某些验证.

说一种做法:

因为感觉你碰到的问题是第一类别, 在用户登录以后储存一份用户的权限数据(这份数据可以自己判断也可以向后端请求).类似: {admin: true}. 或者{lookup: true, operate: false}. 或者是具有哪些权限: ['lookup', 'operate', 'create', 'delete', 'modify']. 然后在涉及到权限的界面根据这份数据进行判断, 或是发涉及权限的请求前对这份数据进行判断.

token 了解一下

用token吧,登录的时候把当前用户的权限写在session里面,然后需要的地方直接判断做不同操作就行了

权限控制交给后端。
前端仅仅做下开关显示,再稳妥点,每次进入页面都发一次请求,从后端拿权限开关。

1.如果是admin的话,前台直接判断控制,允许其拥有所有路由和操作权限,不需要通过后台
2.如果不是admin,需要前台和后台配合,前台拥有一个权限分配的页面(这个页面可以是admin操作的),后台收集值之后,前台其他用户登录的时候,可以获取其相关的权限

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题