基于 Gin 框架的 Go 用户管理系统,支持注册、登录、JWT 鉴权和用户 CRUD。
| 类别 | 技术 |
|---|---|
| 语言 | Go 1.26 |
| Web 框架 | Gin |
| 数据库 | PostgreSQL |
| ORM | GORM |
| 缓存 | Redis |
| 认证 | JWT (golang-jwt/v5) |
| 密码加密 | bcrypt |
| API 文档 | Swagger (swaggo) |
├── main.go # 入口,路由注册
├── config/
│ ├── database.go # PostgreSQL 连接初始化
│ └── redis.go # Redis 连接初始化
├── controller/
│ └── user.go # 接口处理函数
├── service/
│ └── user.go # 业务逻辑层
├── midware/
│ └── mid_check.go # JWT 中间件、角色校验
├── model/
│ └── user.go # 数据模型
├── utils/
│ ├── jwt.go # JWT 生成与解析
│ └── response.go # 统一响应工具
├── docs/ # Swagger 文档(swag init 生成)
└── go.mod
- Go ≥ 1.26
- PostgreSQL
- Redis
# 安装依赖
go mod tidy
# 生成 API 文档(可选)
swag init
# 运行
go run main.go服务默认运行在 http://localhost:8080
启动服务后访问 Swagger UI:
http://localhost:8080/swagger/index.html
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| POST | /register |
用户注册 | 无 |
| POST | /login |
用户登录 | 无 |
| DELETE | /logout |
用户登出 | JWT |
| GET | /user/info |
获取当前用户 | JWT |
| PUT | /user/info |
更新当前用户 | JWT |
| DELETE | /user/info |
删除当前用户 | JWT |
| GET | /admin/info |
获取全部用户 | JWT + Admin |
登录后获取 token,后续请求在 Header 中携带:
token: <your-jwt-token>