核心思路:RBAC (基於角色的訪問控制)
- 數據模型:User - Role (多對多)、Role - Permission (多對多)、Permission 對應菜單/按鈕/接口。
- 登錄後:加載用戶所有權限標識 (如 `user:list`, `user:delete`),存入 Session/Token。
- 前端渲染:路由守衛、組件級 `v-if="hasPerm('user:delete')"` 控制顯示/隱藏。
- 後端攔截:AOP/Filter 校驗接口權限,無權返回 403。
示例 (Vue + 後端)
// 前端指令
Vue.directive('perm', {
inserted(el, binding) {
if (!store.state.permissions.includes(binding.value)) el.remove();
}
});
// 使用
簡化版 (非前後端分離)
JSP/模板引擎中:`管理員專區`。
關鍵點
- 權限粒度到按鈕/接口,而非只分「管理員/用戶」兩類。
- 數據驅動權限,避免硬編碼角色判斷。