如果你已经能用 Go 写出增删改查接口,却总觉得项目「散」——用户是用户、角色是角色、权限判断散落在各个 handler 里,那这门课要补的就是这块缺口:把权限这件事从零散的 if 判断,收敛成一套能维护、能扩展的模型。
先确认自己缺的是不是这块
RBAC 不是新名词,但多数人理解的 RBAC 停留在「用户属于角色,角色拥有权限」这一句话。真正落到项目里,问题会立刻变具体:菜单权限和数据权限是不是一回事?一个用户能不能有多个角色?接口级校验放在中间件还是业务层?超管要不要绕过校验?这些问题的答案,决定了你的系统三个月后是能继续加功能,还是每加一个页面就要改一遍判断逻辑。
- 写过登录注册,但权限只做了「登录了就能访问」;
- 用过 Casbin 或类似框架,但只抄了配置,说不清 model 文件里每条规则为什么这么写;
- 前端菜单写死在代码里,加一个角色就要改一次前端;
- 想做后台管理系统,卡在权限设计上不知道从哪下手。
以上占一条,这门课的内容就对得上你的缺口。
这门课实际要动手做的几件事
它以 Go 作为后端语言,配合 Vue 完成前后端闭环,围绕一套后台管理系统把 RBAC 从模型讲到落地。
权限模型怎么设计
用户、角色、权限、菜单、数据范围这几张表怎么建,多对多关系怎么处理,为什么要留出角色继承或分组的空间。这部分不是画 ER 图就完,而是要解释清楚每个字段在后续校验时的用途。
Casbin 到底怎么接进去
课程会集成 Casbin 做 API 级访问控制,重点在于把 RESTful 接口的请求方法、路径、角色对应到策略规则上,并用中间件统一拦截,而不是在每个接口里手动判断。你要能读懂并改写 model 配置,而不是复制粘贴。
认证与初始化的工程细节
普通用户走邮箱验证注册,超管账户通过命令行一键生成——这类「非业务主干但绕不开」的实现,恰好是自学时最容易卡住的部分。包括密码存储、token 发放与刷新、接口鉴权链路怎么串起来。
可视化配置与前后端配合
角色权限的分配做成可操作的界面,支持菜单权限与数据权限的配置。前端根据后端返回的权限动态渲染菜单和按钮,这部分能让你理解权限数据是如何从数据库一路走到页面的。
建议的练习方式
这类体系课最忌讳只看不写。比较有效的做法是:
- 看完权限模型那一节,先自己把表结构画出来,再对照课程实现修正;
- Casbin 部分动手改一次 model,加一条新规则并验证拦截是否生效;
- 在课程功能之外,自己加一个新角色,走完「建角色—配权限—分配用户—前端生效」的完整流程;
- 尝试给某个接口加数据权限,比如只能看自己部门的数据,检验模型是否撑得住。
学完之后你应该能回答
- 为什么权限校验要做成中间件,而不是写在业务代码里?
- 菜单权限和数据权限在实现上分别落在哪一层?
- 新增一个角色,需要改动哪些地方,能不能做到不改代码?
- Casbin 的策略规则和数据库里的角色权限表,是什么关系?
- 如果需求变成「一个用户多个角色、权限取并集」,现有设计要动哪里?
能顺畅答出这几题,说明你不是照着敲了一遍,而是真的把权限系统想明白了。答不上来的那一条,就是你还该回头重看的地方。
rbac权限系统实战项目|后端课程
课程详情
课程标题:rbac权限系统实战项目|后端课程
学习rbac,开发基于rbac的权限系统
适合人群
- 学习了go语言基础,不知道下一步该学习什么的时候
学习收获
- 学习rbac,开发基于rbac的权限系统
课程简介
本系统是基于RBAC(Role-Based Access Control)模型的标准化后台管理系统开发解决方案,通过Go、Vue等现代技术栈实现精细化权限管控。
项目介绍
rbac后台管理系统是现代基于角色后台系统的核心基石,能够理解并熟练掌握rbac后台管理系统的前后端开发,对于大型后台管理系统的开发有着举足轻重的作用。
核心功能亮点
- 全链路权限管理引擎
- 命令行一键生成超级管理员账户,普通用户支持邮箱验证注册
- 集成Casbin权限框架实现API级访问控制,支持RESTful接口精细化管控
- 可视化角色权限配置:支持菜单权限、数据权限多维度管控
- 用户多角色叠加机制,权限策略动态合并计算
- 企业级系统管理模块
- 智能菜单管理:支持多级动态路由配置,自动生成导航结构
- API资源管理:接口自动发现,可批量创建
- 实时配置中心:动态修改系统参数,支持热更新生效
- 革新性日志系统:websocket实时推送服务端日志,便于系统维护
- 高效开发与部署方案
- 内置数据初始化模块:自动生成权限基线数据,零成本快速迁移
- Docker Compose全栈编排:一键部署前后端服务+数据库环境
- 标准化REST API设计:前后端分离架构,支持多终端扩展
- TypeScript强类型约束:提升代码质量与协作效率
原型
前端页面
课程目录
01 项目搭建 01 1.基于rbac的后台系统.mp4 02 2.项目介绍.mp4 03 3.什么是rbac.mp4 04 4.项目搭建-创建项目.mp4 05 5.项目搭建-代理配置.mp4 06 6.项目搭建-为什么要用配置文件.mp4 07 7.项目搭建-使用yaml库读取配置文件.mp4 08 8.项目搭建-配置中心的引申.mp4 09 9.项目搭建-创建不同的目录.mp4 10 10.项目创建-日志配置.mp4 11 11.项目创建-日志的扩展.mp4 12 12.项目创建-数据库连接.mp4 13 13.项目创建-数据库的注意事项.mp4 14 14.项目创建-redis连接.mp4 15 15.项目创建-git配置.mp4 16 16.命令行操作-读取不同的配置文件.mp4 02 表结构设计 01 17.rbac表结构介绍.mp4 02 18.表结构-用户表、角色表、用户角色表.mp4 03 19.表结构-菜单表、api表、角色菜单表.mp4 04 20.表结构迁移.mp4 05 21.表结构-casbin接入.mp4 06 22.密码加密.mp4 07 23.表结构-用户表加了个字段.mp4 03 用户管理 01 24.命令行创建用户.mp4 02 25.路由搭建..mp4 03 26.路由搭建-静态路由.mp4 04 27.路由搭建-路由分组.mp4 05 28.jwt介绍.mp4 06 29.jwt生成与验证.mp4 07 30.登录接口.mp4 08 31.apifox测试登录接口.mp4 09 32.响应封装.mp4 10 33.参数绑定显示优化.mp4 11 34.参数绑定中间件.mp4 12 35.图片验证码验证流程.mp4 13 36.图片验证码生成接口.mp4 14 37.apifox显示base64图片.mp4 15 38.登录接口验证图片验证码.mp4 16 39.go发送邮件.mp4 17 40.发邮件封装.mp4 18 41.用户注册-发邮件接口.mp4 19 42.用户注册-邮箱注册接口.mp4 20 43.用户注册-用户邮箱注册接口测试.mp4 21 44.用户注册-邮箱注册的二次验证问题.mp4 22 45.认证中间件.mp4 23 46.修改密码.mp4 24 47.图片上传.mp4 25 48.图片大小判断和后缀判断.mp4 26 49.文件名称的判断.mp4 27 50.文件上传配置.mp4 28 51.用户修改个人信息.mp4 29 52.用户详情接口.mp4 30 53.用户列表接口.mp4 31 54.列表查询封装.mp4 32 55.用户删除.mp4 04 菜单管理 01 56.菜单管理-菜单创建.mp4 02 57.菜单管理-菜单列表.mp4 03 58.菜单管理-菜单树.mp4 04 59.菜单管理-查询子菜单.mp4 05 60.菜单管理-通过反射找到更新值.mp4 06 61.菜单管理-name和父菜单id的判断.mp4 07 62.菜单管理-菜单更新父菜单不能是当前菜单的子菜单.mp4 08 63.菜单管理-菜单删除.mp4 05 角色管理 01 64.角色管理-角色创建.mp4 02 65.角色管理-角色列表.mp4 03 66.角色管理-角色更新.mp4 04 67.角色管理-删除角色.mp4 06 api管理 01 68.api管理-api的增删改查.mp4 02 69.api管理-api接口测试.mp4 03 70.api管理-系统api列表.mp4 04 71.api管理-批量创建api.mp4 05 72.api管理-api树.mp4 06 73.api管理-api组优化.mp4 07 权限管理 01 74.权限-增加角色api表.mp4 02 75.权限-给角色分配api.mp4 03 76.权限-接口测试.mp4 04 77.权限-casbin接入.mp4 05 78.权限-路由白名单.mp4 06 79.权限-给用户分配角色.mp4 07 80.权限-casbin鉴权.mp4 08 81.权限-免除管理员的鉴权.mp4 09 82.权限-删除api同步删除角色api.mp4 10 83.权限-修改api关联修改casbin记录.mp4 11 84.遗留问题-角色的api个数.mp4 12 85.权限-给角色分配菜单权限.mp4 13 86.权限-角色菜单的两个问题.mp4 14 87.权限-角色菜单树.mp4 15 88.遗留问题-删除角色连带删除casbin记录.mp4 16 89.权限-权限初始化.mp4 08 系统管理 01 90.数据-网站汇总数据.mp4 02 91.通过ip获取地理位置.mp4 03 92.数据-七日内用户登录、注册数据.mp4 04 93.数据-系统资源.mp4 05 94.系统管理-站点配置项.mp4 06 95.系统管理-获取网站配置.mp4 07 96.系统管理-去掉单独的captcha.mp4 08 97.系统管理-修改站点配置.mp4 09 98.goquery版本问题解决.mp4 10 99.goquery基本用法.mp4 11 100.系统管理-修改index.html文件.mp4 12 101.系统管理-ws接口开发.mp4 13 102.系统管理-写入日志到ws.mp4 09 前后端联调 01 103.一些问题-修改casbin支持动态路由.mp4 02 104.联调-注销接口.mp4 03 105.联调-分页count=0.mp4 04 106.联调-角色options接口.mp4 05 107.联调-api分组options接口.mp4 06 108.联调-菜单列表接口的一个小优化.mp4 07 109.联调-菜单树接口的一个小优化.mp4 08 110.联调-子菜单更新错误.mp4 09 111.联调-单独开发一个用户详情接口.mp4 10 112.联调-前端调ws接口报错的问题.mp4 11 113.联调-默认数据的问题.mp4 12 122.联调-读取文件后几行.mp4 13 123.日志列表api.mp4 10 权限按钮 01 115.权限按钮-表结构创建.mp4 02 116.权限按钮-增删改查接口.mp4 03 117.权限按钮-按钮分组options接口.mp4 04 118.权限按钮-按钮树接口.mp4 05 119.权限按钮-给角色分配按钮.mp4 06 120.权限按钮-删除按钮的联动.mp4 07 121.权限按钮-权限按钮列表.mp4 11 项目部署 01 114.项目部署.mp4 12 课程文档 01 后端文档





