权限认证的本质

1 本质

image

从请求中解析出本次访问的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 最基础的模型基础

如图

image

posted @ 2021-12-26 20:57  姚狗蛋  阅读(23)  评论(0编辑  收藏  举报