1.权限管理概述
权限管理一般采用 RBAC(Role-Base Access Control)
一般为四部分: 用户集合->角色集合->权限集合->资源和操作
给用户分配角色,给角色分配权限,给权限分配对应资源和操作。
这种模型下,资源和操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。
权限系统维护的是用户和可进行行为的关联关系。
在web系统中,大部分是由客户端对服务端发起 Http资源请求,返回数据
http资源和数据资源可以抽象成 “系统资源”
所以如果简化,可以理解为
管理“用户”,“角色”,“系统资源”这三者的关系,就是权限管理的要做的事情
2.通用模型
一般我们目前都会采用前后端分离,这种情况下:
前端职责:
1.根据后端返回,展示视图
2.判断URL是否有权限可以跳转(路由逻辑,前端跳转限制)
3.带上用户信息请求资源
4.资源请求异常处理(处理状态码)
后端职责:
1.管理用户
2.管理角色
3.管理权限
4.管理系统资源
而其中还有一个关键,多人协作开发的过程中最大的问题:知识同步。
所以在项目开始前,前后端要一起达成共识,诸如文件命名,哪一个url对应哪种操作哪种资源等等。
而前后端一起维护势必有涉及到后期更新,版本迭代升级不同步的问题。
目前想到的是引入版本号控制一下。