1.權(quán)限管理概述
權(quán)限管理一般采用 RBAC(Role-Base Access Control)
一般為四部分: 用戶集合->角色集合->權(quán)限集合->資源和操作
給用戶分配角色,給角色分配權(quán)限,給權(quán)限分配對應(yīng)資源和操作。
這種模型下,資源和操作的各種權(quán)限不是直接授予具體的用戶,而是在用戶集合與權(quán)限集合之間建立一個角色集合。每一種角色對應(yīng)一組相應(yīng)的權(quán)限。
權(quán)限系統(tǒng)維護(hù)的是用戶和可進(jìn)行行為的關(guān)聯(lián)關(guān)系。
在web系統(tǒng)中,大部分是由客戶端對服務(wù)端發(fā)起 Http資源請求,返回?cái)?shù)據(jù)
http資源和數(shù)據(jù)資源可以抽象成 “系統(tǒng)資源”
所以如果簡化,可以理解為
管理“用戶”,“角色”,“系統(tǒng)資源”這三者的關(guān)系,就是權(quán)限管理的要做的事情
2.通用模型
一般我們目前都會采用前后端分離,這種情況下:
前端職責(zé):
1.根據(jù)后端返回,展示視圖
2.判斷URL是否有權(quán)限可以跳轉(zhuǎn)(路由邏輯,前端跳轉(zhuǎn)限制)
3.帶上用戶信息請求資源
4.資源請求異常處理(處理狀態(tài)碼)
后端職責(zé):
1.管理用戶
2.管理角色
3.管理權(quán)限
4.管理系統(tǒng)資源
而其中還有一個關(guān)鍵,多人協(xié)作開發(fā)的過程中最大的問題:知識同步。
所以在項(xiàng)目開始前,前后端要一起達(dá)成共識,諸如文件命名,哪一個url對應(yīng)哪種操作哪種資源等等。
而前后端一起維護(hù)勢必有涉及到后期更新,版本迭代升級不同步的問題。
目前想到的是引入版本號控制一下。
3.結(jié)構(gòu)圖
