GoFrame+Vue3+ElementPlus 后台登录鉴权与 Token 机制 本文同步自 EasyGoAdmin 官方文档站http://docs.goframe.elevue.easygoadmin.vip 最新版本与完整文档以官方站为准。 项目介绍EasyGoAdmin GoFrameElementPlus 版是基于 GoFrame v2、Vue3、TypeScript、ElementPlus 的企业级多租户后台敏捷开发框架。核心能力代码生成器一键产出后端八件套 前端整套 CRUD同步创建菜单/权限/字典/路由幂等MySQL/PostgreSQL/SqlServer/Oracle/Sqlite 五方言自由切换全局钩子统一处理审计字段、软删除与租户隔离业务代码零侵入。框架以简化开发、提升效率为初衷内置代码生成器可根据已建表结构一键生成整个模块的增删改查代码并同步创建菜单、权限节点与字典数据切实实现低代码开发缩短研发周期。框架提供体系化的后端能力多租户数据隔离、RBAC 权限与分级数据权限、JWT 双令牌认证、接口限流、操作日志审计、在线用户/服务器/缓存三组监控、可视化定时任务等开箱即用并配有全局钩子机制审计字段、数据软删、租户归属等横切逻辑统一在数据层自动完成业务开发零负担。数据库全面支持 MySQL、PostgreSQL、SqlServer、Oracle、Sqlite 五种主流数据库并可灵活切换配套整库迁移工具跨数据库迁移一条命令完成前端提供动态菜单、25 公共组件与统一请求层开箱即用同时提供 Docker 全栈编排覆盖开发到部署全流程。 项目特点低代码开发代码生成器读表结构一键产出后端八件套 前端整套 CRUD 代码并同步创建菜单、权限节点、字典数据与路由注册幂等支持 HTTP 与 CLI 两种方式多数据库支持内置 MySQL、PostgreSQL、SqlServer、Oracle、Sqlite 五方言驱动适配可灵活切换配套整库迁移工具源库内省 → 方言 DDL 翻译 → 分批搬运 → 序列修复跨库迁移一条命令完成企业级多租户数据层全局租户隔离全局钩子改写 dao.Ctx 唯一查询入口租户 CRUD、专属域名与平台管理开箱即用细粒度权限体系RBAC用户-角色-菜单 四档数据权限全部/本部门及以下/本部门/仅本人多角色自动取最宽松超管/平台绕过安全基座JWT 双令牌访问刷新轮换、黑名单登出/强踢、图形验证码、固定窗口接口限流认证入口更严阈值、操作日志审计、演示环境写保护全局钩子机制审计字段盖章、软删除改写、租户隔离统一在数据层生效业务代码零侵入统一响应与规范全链路驼峰、统一错误码、分页/筛选三件套定稿枚举显示名由字典驱动唯一真相文案改字典即生效现代化前端Vue3 TypeScript Element Plus Vite动态菜单路由、封装请求层、25 公共组件表格/表单/上传/富文本/Excel/行政区划等完善监控运维在线用户监控可强制下线、服务器监控、缓存监控Redis 故障自动降级内存服务不中断定时任务框架数据库可视化配置任务支持 cron/固定频率/仅一次三种模式与 1 并行/单例/放弃三种执行策略多实例经分布式锁不双跑Docker 容器化内置多阶段 Dockerfile静态编译、非 root、健康检查与 docker-compose 全栈编排后端MySQLRedis敏感配置环境变量注入文档与质量保障140 篇开发者文档架构/实战/部署/规范、OpenAPI 原生输出/swagger、黄金样本接口回归基线完整文档140 篇含架构、模块开发、五方言 SQL、部署规范见官方文档站http://docs.goframe.elevue.easygoadmin.vip源码与版本下载见 Giteehttps://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_EleVue 内置模块用户管理维护管理系统的用户支持租户内唯一校验、角色全量重写、城市编解码、Excel 导入导出与数据权限接线。角色管理角色菜单管理与权限分配、设置角色所拥有的菜单权限支持四档数据权限配置。菜单管理配置系统菜单、操作权限、按钮权限标识等菜单即权限承载权限节点定义。部门管理管理系统组织架构树形结构维护是数据权限按部门过滤的基础。职级管理管理用户担任的职级支持 Excel 导入导出。岗位管理管理用户担任的岗位。租户管理多租户开通、配置与停启用事务化开户租户级数据全局隔离。字典管理对系统中常用的较为固定的数据进行统一维护枚举文案改字典即生效。配置管理对系统的常规配置信息进行维护。参数管理系统运行参数的统一维护与读取。城市管理统一对全国行政区划进行维护对其他模块提供行政区划数据支撑。分类管理树形分类数据的统一维护支撑内容模块。文章管理文章的发布、维护与富文本内容处理。通知公告系统通知公告信息发布维护。友链管理对系统友情链接、合作伙伴等相关外链进行集成维护管理。文件模板管理富文本/上传等文件模板的统一管理。定时任务可视化配置调度任务cron/固定频率/仅一次含执行日志查询多实例经分布式锁不双跑。操作日志系统正常操作日志记录和查询系统异常信息日志记录和查询。登录日志系统登录日志记录查询包含登录异常。在线用户监控当前在线用户查询与强制下线。服务器监控运行时、磁盘与数据库/Redis 连通性监测。缓存监控Redis 运行状态与内存使用监测降级内存模式可见。个人中心当前登录用户的个人信息便捷修改。代码生成一键生成模块 CRUD 功能读表结构产出后端八件套 前端整套 CRUD同步创建菜单、权限、字典与路由重复执行幂等支持 HTTP 与 CLI。案例演示代码生成器一键生成后的演示案例。 软件信息软件名称EasyGoAdmin敏捷开发框架GoFrameElementPlus版本软件作者小蚂蚁云 团队软件协议Apache-2.0官网网址https://www.easygoadmin.vip文档网址http://docs.goframe.elevue.easygoadmin.vip演示地址http://manage.goframe.elevue.easygoadmin.vip 版本说明版本名称版本说明版本地址GoFrameLayui混编版采用GoFrame v2、Layui等框架研发https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_LayuiGoFrameElementPlus前后端分离版当前文档版本采用GoFrame v2、Vue3、TypeScript、ElementPlus等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_EleVueGoFrameAntDesign前后端分离版采用GoFrame v2、Vue3、TypeScript、AntDesign等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_AntdVueGoFrameNaiveUI前后端分离版采用GoFrame v2、Vue3、TypeScript、NaiveUI等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_NaiveVueGinLayui混编版采用Gin、Layui等框架研发https://gitee.com/easygoadmin/EasyGoAdmin_Gin_LayuiGinElementPlus前后端分离版采用Gin、Vue3、TypeScript、ElementPlus等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Gin_EleVueGinAntDesign前后端分离版采用Gin、Vue3、TypeScript、AntDesign等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Gin_AntdVueGinNaiveUI前后端分离版采用Gin、Vue3、TypeScript、NaiveUI等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Gin_NaiveVueBeegoLayui混编版采用Beego、Layui等框架研发https://gitee.com/easygoadmin/EasyGoAdmin_Beego_LayuiBeegoElementPlus前后端分离版采用Beego、Vue3、TypeScript、ElementPlus等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Beego_EleVueBeegoAntDesign前后端分离版采用Beego、Vue3、TypeScript、AntDesign等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Beego_AntdVueBeegoNaiveUI前后端分离版采用Beego、Vue3、TypeScript、NaiveUI等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Beego_NaiveVueIrisLayui混编版采用Iris、Layui等框架研发https://gitee.com/easygoadmin/EasyGoAdmin_Iris_LayuiIrisElementPlus前后端分离版采用Iris、Vue3、TypeScript、ElementPlus等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Iris_EleVueIrisAntDesign前后端分离版采用Iris、Vue3、TypeScript、AntDesign等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Iris_AntdVueIrisNaiveUI前后端分离版采用Iris、Vue3、TypeScript、NaiveUI等框架研发前后端分离版本https://gitee.com/easygoadmin/EasyGoAdmin_Iris_NaiveVue 项目结构EasyGoAdmin_GoFrame_EleVue/ ├── main.go # 服务入口注册五库驱动 Redis 适配器 → cmd.Run ├── Makefile # run/build/test/vet/fmt/gen(gen-dao)/clean ├── api/ # 全部请求/响应结构体单包 v1每模块一文件 ├── cmd/ # CLI 入口 │ ├── generator/ # 代码生成器文件菜单字典路由幂等 │ └── migrator/ # 整库迁移源库内省 → 五方言 DDL → 分批搬运 ├── internal/ # 后端核心代码 │ ├── cmd/ # 启动编排cache.Init → 依赖接线 → 路由 → 调度器 │ ├── controller/ # 控制器单包薄层仅转发 service │ ├── logic/ # 业务逻辑单包每模块一文件同包 init 注册 │ ├── service/ # 服务接口层手维护勿运行 gf gen service │ ├── dao/ # 数据访问层gf gen dao 产出挂钩子 Ctx 覆写 │ ├── model/ # entity / do / hooks审计盖章、软删、租户隔离 │ ├── middleware/ # 中间件链CORS→Response→RateLimit→Demo→JWT→Tenant→OperationLog │ ├── router/ # 路由注册router.go gmeta 反射绑定bind.go │ ├── task/ # 定时任务处理器init 自注册依赖单向 task→logic │ ├── consts/ # 业务错误码 / 缓存键 / 日志类型枚举 │ └── migrate/ # 整库迁移引擎内省/翻译/DDL 渲染/搬运 ├── utility/ # 基础能力包无业务依赖 │ ├── jwt/ cache/ upload/ # 双令牌 / 缓存降级 / 两段式上传 │ ├── captcha/ crypto/ excel # 图形验证码 / 加解密 / Excel 导入导出 │ └── ip2region/ response/ ua # IP 归属地 / 统一响应 / 设备识别 ├── templates/ # 代码生成器模板后端 {{ }} 定界ui* 前端 [[ ]] 定界 ├── manifest/ │ ├── config/config.yaml # 运行时配置唯一配置文件GF_ 环境变量可覆盖 │ └── data/ip2region.xdb # IP 归属地库 ├── resource/ │ ├── static/ # 验证码字体等静态资源 │ ├── swagger/ # 本地托管 API 文档页面 │ └── upload/ # 上传文件静态服务根/upload/** ├── hack/ # gf gen dao 配置、自定义模板、黄金样本回归基线 ├── docker/ # Docker 化文件构建上下文为项目根 │ ├── Dockerfile # 多阶段构建静态编译 → alpine 运行非 root 健康检查 │ ├── docker-compose.yml # 三服务编排后端 MySQL8 Redis7 │ └── .env.example # compose 变量模板复制为 .env密钥不入库 ├── .dockerignore # Docker 构建上下文排除清单 ├── ui/ # 前端工程Vue3 TypeScript Element Plus Vite ├── document/ # 项目文档架构定稿、五方言 SQL、wiki ├── upload/ # 上传物理目录file.uploadDir挂载持久卷 ├── log/ # 运行日志 └── bin/ # 编译产物 ## 快速开始 **环境要求**Go ≥ 1.27、Node.js 22.18.0pnpm 推荐、MySQL 8.0、Redis sh # 1. 初始化数据库导入定稿脚本 # document/mysql/easygoadmin.goframe.elevue.sql → 库 easygoadmin.goframe.elevue # 2. 启动后端默认 :8000配置见 manifest/config/config.yaml go run main.go # 3. 启动前端默认 :8001代理转发至 :8000 cd ui pnpm install pnpm dev # 或 Docker 一条命令拉起全栈后端 MySQL Redis cd docker copy .env.example .env docker compose up -d --build # 4. 验证就绪返回 {status:up} 即正常 curl http://127.0.0.1:8000/api/health登录账号admin / 123456。更多启动细节与常见问题见在线文档·快速入门。 模块展示✨ 特别鸣谢感谢 GoFrame、Vue.js、Element Plus、TypeScript、Vite、Pinia 等优秀开源项目。