基于RBAC 权限模型,基于角色的访问控制(Role-Based Access Control) , 例如定义一个管理员角色,他具有以下权限
- 添加用户
- 删除用户
- 更新用户
- 查看用户
// admin.role.js
module.exports = {
"user.add": 1,
"user.delete": 1,
"user.update": 1,
"user.list": 1
}
再定义一个 员工角色, 仅仅具有「添加用户」功能
// staff.role.js
module.exports = {
"user.add": 1,
"user.delete": 0,
"user.update": 0,
"user.list": 0
}
admin.role.js 和 staff.role.js 的配置在用户打开系统网页后,通过 /api/user/permission
获取, SPA(单页应用的路由系统)根据配置,分别处理以下流程:
- 根据权限开放前端模块
- 根据权限注册对应的页面路由
- 用户访问未开放的路由,进行权限判断
- .....