权限认证的本质
1 本质
从请求中解析出本次访问的URL,和需要的权限
再从当前登陆用户中,拿到当前用户的角色list,权限list,
check ,是否包含本次URL访问要有的权限字符串。
如果有,放行。
如果没有,不好意思,你没权限。
2 需要放行的
2-1 静态资源
一个是没有任何限制的公共资源,如js、css、images等,可以设置一个白名单,把它们放入其中,这些URL 相当于“免检”。
2-2 admin
一个特殊的用户,如超级管理员,这个需要在用户表进行标识,
比如user ID = 1 的人是系统管理员,自定义
遇到它后直接放行,因为它也是“免检”,也是一个标记而已。
3 页面菜单权限
即用户登录系统可以看到的页面,
由菜单来控制,菜单包括一级菜单和二级菜单,只要用户有一级和二级菜单的权
限,那么用户就可以访问页面。
4 按钮操作权限
即页面的功能按钮,
包括查看,新增,修改,删除,审核等,
用户点击删除按钮时,后台会校验用户角色下的所有权限是 否包含该删除权限,如果是,就可以进行下一步操作,反之提示无权限。
有的系统要求"可见即可操作",
意思是如果页面上能够看到操作按钮,那么用户就可以操作
要实现此需求,这里就需要前端来配合,
前端开发把用户的权限信息缓存,在页面判断用户是否包含此权限,如果有,就显示该
按钮,如果没有,就隐藏该按钮。
某种程度上提升了用户体验,但是在实际场景可自行选择是否需要这样做
5 数据权限
不同的用户,在同一页面看到的数据是不同的,
比如财务部只能看到其部门下的用户数据,
采购部只看采购部的数据
解决方案,
就是把用户和组织架构关联起来。
若依,是把用户下多个角色,和部门关联
6 RBAC模型
6-1 最基础的模型基础
如图
我对任何唾手而得,快速,出自本能,即兴,含混的事物没有信心。我相信缓慢,平和,细水长流的力量,踏实,冷静。我不相信缺乏自律精神和不自我建设,不努力,可以得到个人或集体的解放。