为什么你的 Vue3 后台权限管理框架总是做得又碎又难维护?

5 阅读4分钟

为什么你的 Vue3 后台权限管理框架总是做得又碎又难维护?

做过后台管理系统的工程师大概都有同感:权限模块是整个系统里最脏、最难改的活儿。按钮藏了又出现,角色配了没生效,字段级权限更是改一行崩三处。如果你正在为项目的 vue3后台权限管理框架 选型,或者正在自己手撸一套,这篇文章结合 XYGo Admin 的实现思路,聊聊一套完整的三级权限体系该怎么搭。


一、vue3后台权限管理框架的终极目标:管住人,看住数

很多团队做权限还停留在"页面能打开/打不开"的层面。但真实业务场景远比这复杂:

  • 运营能看到用户列表,但看不到手机号
  • 主管能编辑订单,但删不了
  • 不同地区的员工看到的菜单都不一样

这就是 RBAC 角色权限 + 按钮级权限 + 字段级权限 三级控制缺一不可的原因。


二、第一级:RBAC 角色权限,菜单级管控

XYGo Admin 的第一级是角色权限(RBAC),基于角色的访问控制。管理员通过角色关联菜单权限,用户登录后,后端返回该角色可访问的菜单列表,前端动态注册路由。

具体角色类型:

角色标识说明
R_SUPER超级管理员,拥有所有权限,不受权限校验限制
R_ADMIN普通管理员,权限由分配的菜单决定
自定义可创建任意角色并分配菜单权限

分配流程也很清晰:创建角色 → 为角色分配菜单(勾选菜单树)→ 将角色分配给用户。


三、第二级:按钮级权限,精确到每个操作

菜单级权限只管"能不能进页面",业务里真正让人头疼的是"增删改查"这些操作按钮——不同角色能看到不同的操作入口。

XYGo Admin 在菜单管理中,为页面菜单添加「按钮」类型的子节点,配置权限标识(如 addeditdeleteexport)。前端通过 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,有几个实践建议:

  1. 先规划角色,再分配菜单:不要从用户角度逆推,从业务职能出发定义角色
  2. 按钮权限标识统一命名规范add/edit/delete/export/view 足够覆盖 90% 场景
  3. 字段级权限不要滥用:只对真正敏感的数据开启,避免管理成本爆炸
  4. 前端后端双重校验:前端 v-auth 是体验优化,后端 AdminAuth 中间件才是安全底线

结语

一套设计合理的 vue3后台权限管理框架,能把权限相关的工作从"每次需求变更都改烂代码"变成"后台配置一下就好了"。XYGo Admin 提供的三级权限体系(RBAC 角色权限 + 按钮级权限 + 字段级权限)覆盖了从菜单到操作再到数据的完整链路,有兴趣可以去官网 xygoadmin.com 了解完整实现。


摘要

本文围绕 vue3后台权限管理框架,介绍了 XYGo Admin 三级权限体系(RBAC 角色权限、按钮级权限、字段级权限)的完整实现思路,涵盖前后端配置方式与校验链路,为中后台权限架构设计提供实操参考。