image.png
角色是可以理解權(quán)限的集合,主要有兩個(gè)重要的屬性仅仆,角色類型和權(quán)限集合器赞,也是服務(wù)端校驗(yàn)用戶權(quán)限的兩個(gè)維度。
后端
首先墓拜,用戶需要關(guān)聯(lián)角色港柜,存在關(guān)聯(lián)表中。
然后咳榜,用戶登錄后夏醉,調(diào)用需要做權(quán)限校驗(yàn)的接口時(shí)爽锥,先獲取該用戶關(guān)聯(lián)的角色,根據(jù)這兩個(gè)維度:
1.校驗(yàn)角色類型授舟,是否有調(diào)用權(quán)限救恨。
2.獲取權(quán)限集合,再次校驗(yàn)释树,該接口需要的是否有具體的權(quán)限肠槽。
eg:
角色類型
roleType:[cloudAdmin]
權(quán)限集合
permissionList :["user:add","tenant:delete"]
后端代碼實(shí)現(xiàn)
image.png
最后在判斷是否放行接口調(diào)用
后端權(quán)限校驗(yàn)都是在AOP中統(tǒng)一處理的
前端
還有一個(gè)維度,就是前端按鈕的權(quán)限校驗(yàn)奢啥。
用戶登錄后秸仙,調(diào)用后端接口,查詢用戶關(guān)聯(lián)的所有權(quán)限集合桩盲,并緩存到localStorage中寂纪。之后應(yīng)該是前端開(kāi)發(fā)寫了個(gè)組件,用來(lái)做按鈕的權(quán)限控制赌结,每個(gè)按鈕關(guān)聯(lián)具體的某一個(gè)權(quán)限(例如【租戶-新增】)捞蛋,自定義的vue組件來(lái)控制校驗(yàn)