前言
一、RBAC(role-nased Access Control)?
基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。
用户<->角色<->权限
RBAC模型可以分为:RBAC0、RBAC1、RBAC2、RBAC3 四种。其中RBAC0是基础,也是最简单的,相当于底层逻辑,RBAC1、RBAC2、RBAC3都是以RBAC0为基础的升级。
一般情况下,使用RBAC0模型就可以满足常规的权限管理系统设计了。
二、一定要用权限管理模型吗?
借助权限模块可以有效的控制参与到系统不同身份人员要具体做的操作,可以说一个成熟的后端系统离不开一个比较完善的权限管理系统。
三、表结构设计思路
admin表里有id,对应t_admin_role的adminid
角色表里也有id,对于t_admin_role的rid
需要一个中间表,是因为多对多的关系,
菜单和角色之间同样也是多对多关系,也需要一个中间表
根据用户属于哪个角色,根据角色判断有哪些资源。
登录状态判断这是前提,登录了之后再去做权限判断。登录之后拿到用户的角色,角色可以是多个。
或者根据请求url判断角色,根据url找到菜单id根据中间表判断它需要什么角色来拥有这些url的权限,进行比较。然后判断用户是否真的有这个权限