如果你已经能用 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 后端文档