109 lines
2.7 KiB
Markdown
109 lines
2.7 KiB
Markdown
# A股工具 · 用户体系
|
||
|
||
基于 **Go + PostgreSQL + Docker Compose** 的用户权限管理模块,角色覆盖:系统管理员、管理员、用户。前端界面复用 `refer/` 目录下的暗色主题设计语言。
|
||
|
||
## 技术栈
|
||
|
||
| 层 | 技术 |
|
||
|---|---|
|
||
| 后端 | Go 1.25 + Gin + GORM + JWT + bcrypt |
|
||
| 数据库 | PostgreSQL 18 |
|
||
| 前端 | React 18 + Vite + Tailwind CSS |
|
||
| 部署 | Docker Compose |
|
||
|
||
## 快速启动
|
||
|
||
```bash
|
||
# 1. 复制环境变量
|
||
cp .env.example .env
|
||
|
||
# 2. 启动服务(首次会编译 Go 后端,可能需要几分钟)
|
||
docker compose up -d
|
||
|
||
# 3. 等待数据库健康检查通过后,访问前端
|
||
open http://localhost:3018
|
||
```
|
||
|
||
## 默认端口
|
||
|
||
| 服务 | 端口 |
|
||
|---|---|
|
||
| 前端 | 3018 |
|
||
| 后端 API | 3019 |
|
||
| PostgreSQL | 5432 |
|
||
|
||
## 创建首个系统管理员
|
||
|
||
系统不内置默认账号。启动后,先注册一个普通用户,再通过 SQL 将其提升为系统管理员:
|
||
|
||
```bash
|
||
docker compose exec db psql -U stock -d stock -c "
|
||
UPDATE users SET role_id = (SELECT id FROM roles WHERE name = 'system_admin')
|
||
WHERE username = '你的用户名';
|
||
"
|
||
```
|
||
|
||
## 角色说明
|
||
|
||
| 角色 | 权限 |
|
||
|---|---|
|
||
| 系统管理员 | 管理管理员、用户、系统配置 |
|
||
| 管理员 | 管理普通用户 |
|
||
| 用户 | 访问业务功能、修改个人资料 |
|
||
|
||
## 主要 API
|
||
|
||
| 方法 | 路径 | 说明 | 权限 |
|
||
|---|---|---|---|
|
||
| POST | /api/auth/register | 注册(默认 user) | 公开 |
|
||
| POST | /api/auth/login | 登录 | 公开 |
|
||
| GET | /api/auth/me | 当前用户 | 需登录 |
|
||
| POST | /api/auth/logout | 登出 | 需登录 |
|
||
| GET | /api/admin/users | 用户列表 | admin / system_admin |
|
||
| POST | /api/admin/users | 创建用户 | admin / system_admin |
|
||
| PUT | /api/admin/users/:id | 更新用户/角色 | admin / system_admin |
|
||
| DELETE | /api/admin/users/:id | 删除用户 | system_admin |
|
||
| GET | /api/admin/roles | 角色列表 | admin / system_admin |
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
stock/
|
||
├── backend/ # Go 后端
|
||
│ ├── cmd/api/main.go
|
||
│ ├── internal/
|
||
│ │ ├── config/
|
||
│ │ ├── db/
|
||
│ │ ├── handlers/
|
||
│ │ ├── middleware/
|
||
│ │ ├── models/
|
||
│ │ └── routes/
|
||
│ ├── go.mod
|
||
│ └── Dockerfile
|
||
├── frontend/ # React 前端
|
||
│ ├── src/
|
||
│ ├── package.json
|
||
│ └── Dockerfile
|
||
├── docker-compose.yml
|
||
├── .env.example
|
||
└── README.md
|
||
```
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
# 后端本地运行(需先启动 PostgreSQL)
|
||
cd backend
|
||
go run ./cmd/api
|
||
|
||
# 前端本地运行
|
||
cd frontend
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- 生产环境请务必修改 `JWT_SECRET`。
|
||
- 首次启动时 GORM 会自动创建表并插入默认角色。
|