Spring Boot3+Vue3實(shí)現(xiàn)角色權(quán)限控制
分析一下:角色權(quán)限都需要做哪些東西?或者說哪些地方需要用權(quán)限控制
1.菜單部分:不一樣的角色可以看到不一樣的菜單,甚至菜單的名字叫法都不一樣
2.按鈕部分:涉及到具體的功能業(yè)務(wù)邏輯,比如管理員可以新增但是用戶不可以
3.數(shù)據(jù)部分:管理員可以看到所有數(shù)據(jù),而用戶只能看到與自己有關(guān)的數(shù)據(jù)
權(quán)限怎么做(思路)
1.我們得有角色的概念,什么是角色?但凡你需要讓他登錄的,都是角色
2.如何區(qū)分不同的角色,不同的角色表里需要有角色的標(biāo)識(shí),不同的角色的標(biāo)識(shí)是不一樣的,比如管理員和租戶
3.借助角色表示,可以在頁面上進(jìn)行一些邏輯判斷
如何實(shí)現(xiàn)
1. v-if
const updateUser = () => {
data.user=JSON.parse(localStorage.getItem('pro1-user') || "{}")
}

2.要實(shí)現(xiàn)只有管理員才能新增房屋信息,租戶無法新增的功能,可以通過前后端結(jié)合的方式來實(shí)現(xiàn)權(quán)限控制。
-
用戶登錄 → 后端返回用戶信息(含角色) → 前端保存到localStorage
-
每次請求 → 前端自動(dòng)攜帶token → 后端攔截器驗(yàn)證
-
訪問管理接口 → 后端檢查角色 → 通過/拒絕
-
前端頁面 → 根據(jù)角色顯示/隱藏功能按鈕
2.1 修改Controller添加權(quán)限控制

2.2 登錄時(shí)保存用戶角色
2.3 修改頁面權(quán)限控制

2.3 修改模板顯示邏輯
<el-button type="primary" @click="handleAdd" v-if="data.userRole === '管理員'">>新增</el-button> <el-button type="warning" @click="deleteBatch" v-if="data.userRole === '管理員'">批量刪除</el-button>

浙公網(wǎng)安備 33010602011771號(hào)