在后台管理系统开发中,权限控制是最基础也最容易出问题的一环。大多数 vue3后台管理框架 要么权限粒度太粗——只能控制菜单显隐,要么实现过于复杂——动辄上千行配置。真正好用的 vue3后台权限管理框架,应该做到"开箱即用、三级可控"。
XYGo Admin 作为一款基于 GoFrame + Vue3 的开源中后台方案,在权限设计上花了大力气,构建了一套从粗到细的三级权限体系。
第一层是经典的 rbac权限模型 实现,通过角色绑定菜单。管理员创建角色后,在菜单树里勾选该角色能访问的页面,再将角色分配给用户。用户登录时后端只下发其所属角色的菜单列表,前端根据这套数据动态注册路由。超级管理员(R_SUPER)直接免除所有校验,普通管理员则严格按分配菜单过滤。
第二层是按钮级权限,这也是区分"能用"和"好用"的关键。如果你用过一些 vue3后台管理框架,你可能遇到过这样的情况:菜单能进去,但里面所有按钮都露着,一点就提示无权限,体验很差。XYGo Admin 通过 v-auth 指令精确控制每个按钮的显隐——在菜单管理里为页面添加"add""edit""delete"等按钮子节点,前端模板里用 v-auth="'add'" 包裹即可。没有权限的按钮直接从 DOM 里移除,用户压根看不见。
第三层是字段级权限。某些场景下,同一个页面的同一张表单,财务角色能看到成本字段,普通员工却看不到——这就是字段级权限的价值。XYGo Admin 通过 admin_field_perm 表存储字段配置,后端在查询和更新时自动过滤,前端无需额外处理。
权限校验链路也设计得清晰:请求到达 → AdminAuth 中间件 → 解析 JWT → 获取角色 → 超级管理员直接放行 → 普通角色检查请求路径是否在权限范围内。整个流程透明可追溯。
路由层面也做了完整配合。XYGo Admin 采用前台/后台双路由体系,后台路由完全动态加载——未登录用户访问 /admin/* 时,beforeEach 守卫拦截、加载菜单、转换路由、注册完毕后才放行,杜绝了"猜 URL 访问未授权页面"的情况。
如果你正在找一个权限设计成熟、代码结构清晰的 vue3后台框架,不妨去 XYGo Admin 官网看看。RBAC 权限模型、按钮级控制、字段级过滤、动态路由——该有的都有了,而且是 MIT 协议开源,拿来就能商用。