GoFrame 后台框架的权限设计怎么做到字段级拆解 XYGo Admin 的三级 RBAC 体系大多数基于 Vue3 的后台管理框架权限控制只做到菜单和按钮两层。但面向企业级场景时同一个用户列表页面财务主管能看到「薪资」字段普通运营却不行——这种字段级的差异化控制才是真正的硬需求。XYGo Admin 的解决方案是把权限从粗到细拆成三级每一级都有独立的配置入口和前端指令。第一级角色权限RBAC这是最常规的一层创建角色 → 勾选菜单树 → 分配用户。用户登录后GoFrame 后端根据 JWT 中的角色信息返回该角色有权访问的菜单列表Vue3 前端再据此动态注册路由。角色标识里有一个特殊的存在——R_SUPER。超级管理员不走任何权限校验后端中间件直接放行。这个设计在开发阶段省了很多事但生产环境建议只保留一个超管账号。第二级按钮级权限这是很多人以为的「粒度终点」。在 XYGo Admin 的菜单管理里每个页面菜单下面可以追加「按钮」类型的子节点配上一个权限标识比如 add、edit、delete、export。前端用起来极其简单vueElButton v-authadd typeprimary新增/ElButtonElButton v-auth[edit, update] typeprimary编辑/ElButtonv-auth 指令会从当前路由的 meta.authList 里取权限列表。没有对应权限的元素直接从 DOM 里移除不是 v-if 式隐藏是真正的不可访问。第三级字段级权限关键词是「字段」这才是 XYGo Admin 和大多数后台框架拉开差距的地方。在后台的「字段权限」管理页面你可以为每个数据模块比如用户管理配置字段对不同角色的可见性| 配置项 | 含义 ||--------|------|| 可见 | 该角色能在列表/详情中看到此字段 || 可编辑 | 该角色能修改此字段的值 || 隐藏 | 该角色完全看不到此字段 |后端通过 admin_field_perm 表存储这些规则。每次查询和更新操作都会自动过滤字段——SQL 层就已经把不该出现的数据剔掉了而不是在前端做「遮眼法」。全链路校验的流程权限校验不是某个组件的独立行为而是从请求到达那一刻就开始了1. AdminAuth 中间件解析 JWT拿到用户角色2. 遇到 R_SUPER跳过后续校验3. 否则逐一比对请求路径与角色的菜单权限4. 通过后进入业务处理再叠加字段权限过滤5. 前端 v-auth 和 v-roles 指令做 UI 层兜底前后端各守一层任一拦截即可阻断。实际项目中的价值这个三级体系最实用的场景是一个做了两年、积累了 30 多个模块的后台项目当你需要给外包团队开放部分管理功能时不用另开一套系统。建一个「外包运维」角色勾上需要的菜单在字段权限里把敏感字段设成隐藏或只读——五分钟搞定零代码改动。权限管理的完整方案见XYGo Admin 开发文档---技术栈GoFrame v2 Vue 3.5 Element Plus JWT