为什么你的 Vue3 后台权限管理框架总是做得又碎又难维护?
做过后台管理系统的工程师大概都有同感:权限模块是整个系统里最脏、最难改的活儿。按钮藏了又出现,角色配了没生效,字段级权限更是改一行崩三处。如果你正在为项目的 vue3后台权限管理框架 选型,或者正在自己手撸一套,这篇文章结合 XYGo Admin 的实现思路,聊聊一套完整的三级权限体系该怎么搭。
一、vue3后台权限管理框架的终极目标:管住人,看住数
很多团队做权限还停留在"页面能打开/打不开"的层面。但真实业务场景远比这复杂:
- 运营能看到用户列表,但看不到手机号
- 主管能编辑订单,但删不了
- 不同地区的员工看到的菜单都不一样
这就是 RBAC 角色权限 + 按钮级权限 + 字段级权限 三级控制缺一不可的原因。
二、第一级:RBAC 角色权限,菜单级管控
XYGo Admin 的第一级是角色权限(RBAC),基于角色的访问控制。管理员通过角色关联菜单权限,用户登录后,后端返回该角色可访问的菜单列表,前端动态注册路由。
具体角色类型:
| 角色标识 | 说明 |
|---|---|
| R_SUPER | 超级管理员,拥有所有权限,不受权限校验限制 |
| R_ADMIN | 普通管理员,权限由分配的菜单决定 |
| 自定义 | 可创建任意角色并分配菜单权限 |
分配流程也很清晰:创建角色 → 为角色分配菜单(勾选菜单树)→ 将角色分配给用户。
三、第二级:按钮级权限,精确到每个操作
菜单级权限只管"能不能进页面",业务里真正让人头疼的是"增删改查"这些操作按钮——不同角色能看到不同的操作入口。
XYGo Admin 在菜单管理中,为页面菜单添加「按钮」类型的子节点,配置权限标识(如 add、edit、delete、export)。前端通过 v-auth 指令控制按钮显隐:
<template>
<!-- 只有拥有 add 权限的角色才能看到此按钮 -->
<ElButton v-auth="'add'" type="primary">新增</ElButton>
<!-- 多个权限(满足其一即可) -->
<ElButton v-auth="['edit', 'update']" type="primary">编辑</ElButton>
</template>
v-auth 指令从当前路由的 meta.authList 中获取权限列表,判断用户是否拥有指定权限,无权限则从 DOM 中移除该元素,按钮根本不会出现在页面里。
如果需要按角色显示,也可以用 v-roles 指令:
<template>
<div v-roles="'R_SUPER'">超级管理员专属内容</div>
</template>
四、第三级:字段级权限,看得到还要能改
按钮级权限管住了"操作入口",字段级权限管住"数据可见性"。比如在用户管理模块,普通角色能看到用户名,但看不到手机号和身份证号;某些敏感字段对特定角色完全隐藏。
XYGo Admin 在后台「字段权限」管理中配置:选择目标模块,配置每个字段对不同角色的权限——可见(能看)、可编辑(能改)、隐藏(完全不可见)。
后端通过 admin_field_perm 表存储字段权限配置,在查询和更新时自动过滤字段,不需要前端做任何处理,后端已经做好兜底。
五、三级联动的完整权限校验流程
请求从发出到响应,XYGo Admin 的权限校验链路是这样的:
请求到达
→ AdminAuth 中间件
→ 解析 JWT Token
→ 获取用户角色
→ R_SUPER?直接放行
→ 检查请求路径是否在角色菜单权限中
→ 有权限:继续处理
→ 无权限:返回 403
前端 v-auth 指令只是展示层的兜门,后端才是真正的守门人。
六、用 vue3后台权限管理框架的正确姿势
如果你正在评估选型,或者已经用上了 XYGo Admin,有几个实践建议:
- 先规划角色,再分配菜单:不要从用户角度逆推,从业务职能出发定义角色
- 按钮权限标识统一命名规范:
add/edit/delete/export/view足够覆盖 90% 场景 - 字段级权限不要滥用:只对真正敏感的数据开启,避免管理成本爆炸
- 前端后端双重校验:前端
v-auth是体验优化,后端 AdminAuth 中间件才是安全底线
结语
一套设计合理的 vue3后台权限管理框架,能把权限相关的工作从"每次需求变更都改烂代码"变成"后台配置一下就好了"。XYGo Admin 提供的三级权限体系(RBAC 角色权限 + 按钮级权限 + 字段级权限)覆盖了从菜单到操作再到数据的完整链路,有兴趣可以去官网 xygoadmin.com 了解完整实现。
摘要:
本文围绕 vue3后台权限管理框架,介绍了 XYGo Admin 三级权限体系(RBAC 角色权限、按钮级权限、字段级权限)的完整实现思路,涵盖前后端配置方式与校验链路,为中后台权限架构设计提供实操参考。