权限
本项目的基于 rbac 进行设计。考虑到权限与菜单的关系,将权限与菜单结合。
菜单分为三个类型:
- 目录
- 菜单(菜单也可以有权限)
- 权限
权限标识
权限设计标识符 system:menu:list
系统模块下的 menu 菜单有 list 权限,我们就可以在 list 访问接口时对比用户是否具有此权限。
- 用户的权限与 userId 进行结合。
计算权限列表
sh
const prem = system:menu:list
const perms = perm.split(":")
查看用户权限工程
userId -> userRole -> role -> menu -> menu.permission
当一个用户需要进行操作的时候,一个请求过来,我们需要更具用具 ID 获取菜单中的权限,判断当前用户是否有权限对此接口进行操作。
TIP
使用 redis 等进行优化
演示模式
处理演示模式下,只处理 GET。其他请求方法被禁止操作。增加全局配置: