Gin-Vue-Admin 搭管理后台:版本口径、JWT+Casbin 双中间件与启动顺序

项目信息
- GitHub 仓库:https://github.com/flipped-aurora/gin-vue-admin
- 在线文档:https://www.gin-vue-admin.com
- 初始化指南:点击查看
- 从环境到部署教学视频:bilibili
- 开发教学:开发教学说明
- 交流社区:点击进入
- 插件市场:点击进入
- 演示站:http://demo.gin-vue-admin.com(用户名
admin/ 密码123456) - 授权版演示站:https://vip.gin-vue-admin.com
支持 Claw 生态
一分钟生成前后端基础代码
高度适配 AI 编辑器的 MCP,流程是:创建基础模板 → AI 生成结构 → 生成代码 → 分配权限 → 基础 CURD 生成完成。
1. 基本介绍
1.1 项目介绍
Gin-vue-admin 是一个基于 vue 和 gin 开发的全栈前后端分离的开发基础平台,集成 jwt 鉴权、动态路由、动态菜单、casbin 鉴权、表单生成器、代码生成器等功能,提供多种示例文件,把更多时间专注在业务开发上。
它是一套前后端分离架构的开源框架,面向中小型项目的快速搭建。
2. 使用说明
- node 版本 > v18.16.0
- golang 版本 >= v1.22
- IDE 推荐:Goland
2.1 server 项目
用 Goland 等编辑工具时,要打开 server 目录,不能打开 gin-vue-admin 根目录。
# 克隆项目
git clone https://github.com/flipped-aurora/gin-vue-admin.git
# 进入server文件夹
cd server
# 使用 go mod 并安装go依赖包
go generate
# 运行
go run .
2.2 web 项目
# 进入web文件夹
cd web
# 安装依赖
npm install
# 启动web项目
npm run serve
2.3 swagger 自动化 API 文档
2.3.1 安装 swagger
go install github.com/swaggo/swag/cmd/swag@latest
2.3.2 生成 API 文档
cd server
swag init
执行后 server 目录下 docs 文件夹里的 docs.go、swagger.json、swagger.yaml 三个文件会更新。启动 go 服务后,浏览器访问 http://localhost:8888/swagger/index.html 查看文档。注意是 8888 端口,不是前端 dev server 的端口。
2.4 VSCode 工作区
2.4.1 开发
用 VSCode 打开根目录下的工作区文件 gin-vue-admin.code-workspace,边栏会出现三个虚拟目录:backend、frontend、root。
2.4.2 运行/调试
运行和调试里有三个 task:Backend、Frontend、Both (Backend & Frontend)。运行 Both (Backend & Frontend) 可同时启动前后端。
2.4.3 settings
工作区配置文件中的 go.toolsEnvVars 字段用于 VSCode 自身的 go 工具环境变量;多 go 版本系统中可以通过 gopath、go.goroot 指定运行版本。
"go.gopath": null,
"go.goroot": null,
3. 技术选型
- 前端:基于 Vue 的 Element 构建基础页面。
- 后端:用 Gin 快速搭建基础 restful 风格 API,Gin 是 go 语言编写的 Web 框架。
- 数据库:
MySQL或MariaDB(5.7+),引擎 InnoDB,用 gorm 做数据库基本操作。 - 缓存:用
Redis记录当前活跃用户的 jwt 令牌,实现多点登录限制。 - API 文档:用
Swagger构建自动化文档。 - 配置文件:用 fsnotify 和 viper 实现 yaml 格式配置。
- 日志:用 zap 记录日志。
5. 主要功能
- 权限管理:基于
jwt和casbin实现。请求先过认证中间件middleware.JWT校验身份,再由授权中间件middleware.Casbin判断当前角色能否访问该 API。 - 文件上传下载:基于
七牛云、阿里云、腾讯云的上传实现。 - 分页封装:前端用
mixins封装分页,调用分页方法即可。 - 用户管理:系统管理员分配用户角色和角色权限。
- 角色管理:权限控制的主要对象,可给角色分别分配 API 权限和菜单权限。
- 菜单管理:用户动态菜单配置,不同角色看到不同菜单;配合动态路由,菜单权限直接决定前端路由表。
- api 管理:不同用户可调用的 API 接口不同。
- 配置管理:配置文件可前台修改(在线体验站点不开放此功能)。
- 条件搜索:条件搜索示例。
- restful 示例:参考用户管理模块中的示例 API。
- 多点登录限制:借助 Redis 配合对应配置限制多端登录状态。
- 分片上传:文件分片上传和大文件分片上传的示例。
- 表单生成器:借助 @Variant Form。
- 代码生成器:后台基础逻辑以及简单 CURD 的代码生成器。
代码生成器的边界要说清楚:它产出的是后台基础逻辑和简单 CURD 的骨架,配合 MCP 流程走完「建模板 → 生成结构 → 生成代码 → 分配权限」,一套基础 CURD 可以很快跑通。但多表关联、复杂校验、事务、状态流转这类业务逻辑,仍然需要手写 service 层。
6. 知识库
6.1 团队博客
6.2 教学视频
- 手把手教学视频:https://www.bilibili.com/video/BV1Rg411u7xH/
- 后端目录结构调整介绍以及使用方法:https://www.bilibili.com/video/BV1x44y117TT/
- gin-vue-admin 版本更新介绍视频:bilibili
版本要求
README badge 标注的是 golang 1.20、gin 1.9.1、vue 3.3.4、element-plus 2.3.8、gorm 1.25.2;使用说明里写 node > v18.16.0、golang >= v1.22;官方文档则是另一套:
- Node.js:≥ 20.19 或 ≥ 22.12
- Go:≥ 1.24
- MySQL:≥ 5.7(引擎必须为 InnoDB,推荐 8.0)
官方文档列出的后端版本:Go ≥ 1.24、Gin v1.10.0、GORM v1.31.1、Casbin v3.10.0;前端:Vue ^3.5.31、Element Plus ^2.13.6、Pinia ^2、Vue Router ^4、Vite ^8。
三处口径不一致,环境按官方文档的版本准备,否则依赖拉下来容易对不上。
关键组件与代码位置
- 服务启动:
main.go— 服务器引导程序 - 配置系统:
core.Viper— 配置管理系统 - 认证中间件:
middleware.JWT— JWT 身份验证 - 授权中间件:
middleware.Casbin— 权限控制处理 - API 处理器:
api.v1— REST API 处理程序 - 业务服务:
service.*— 业务逻辑服务 - 代码生成:
service.AutoCode— 自动代码生成引擎
GVA 3.0 AI 方向
- 在 GVA 中选择 API,填写每个 Skill 的名称与描述,点击生成,下载包含 API 代码与自动生成 Skill 文件的 ZIP 包。把 Skill 文件放入项目后,任何 AI Agent 都能直接调用这些 API,权限统一走内部校验。
- 配置 MCP 即可用 Claude Code、Cursor、Codex 搭建系统;Agent 调用仍经过 GVA 内部权限校验,现有角色与权限配置直接生效。
10. 注意事项
请遵守 Apache License 2.0,并按许可证要求保留适用的版权、专利、商标和归属声明。授权版功能与官方商业支持请通过商业授权页面获取。