资讯动态

Gin + Vue3 + ElementPlus 登录防护:图形验证码加接口限流

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

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑