2025-10-26 00:19:23 +08:00
|
|
|
|
# CarrotSkin Web 应用
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
## 项目简介
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
CarrotSkin 是一个 Minecraft 皮肤站 Web 应用,提供皮肤上传、管理和分享功能。
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
- **前端框架**: Next.js 14
|
|
|
|
|
|
- **UI 组件**: React + Tailwind CSS
|
|
|
|
|
|
- **后端**: Go + Gin (CarrotSkin Backend)
|
|
|
|
|
|
- **API 网关**: APIgateway
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
## 主要功能
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
- 用户认证与授权
|
|
|
|
|
|
- 邮箱验证码验证系统
|
|
|
|
|
|
- 皮肤上传与预览
|
|
|
|
|
|
- 角色中心管理
|
|
|
|
|
|
- 自定义测试工具
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
## API 接口信息
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
### 邮箱验证码接口
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
**正确的API接口格式(基于后端代码分析):**
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
2025-10-26 00:19:23 +08:00
|
|
|
|
POST /api/v1/auth/send-code
|
|
|
|
|
|
Content-Type: application/json
|
2025-10-06 18:54:26 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
**请求参数:**
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"email": "user@example.com",
|
|
|
|
|
|
"type": "register" // 可选值: register, reset_password, change_email
|
|
|
|
|
|
}
|
2025-10-06 18:54:26 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
**验证码规则:**
|
|
|
|
|
|
- 6位数字验证码
|
|
|
|
|
|
- Redis存储,有效期10分钟
|
|
|
|
|
|
- 限制:每分钟只能发送1次
|
|
|
|
|
|
- 后端实现文件:internal/handler/auth_handler.go 和 internal/service/verification_service.go
|
|
|
|
|
|
|
|
|
|
|
|
### 其他重要API接口
|
|
|
|
|
|
|
|
|
|
|
|
**认证相关:**
|
|
|
|
|
|
- `POST /api/v1/auth/register` - 用户注册(需邮箱验证码)
|
|
|
|
|
|
- `POST /api/v1/auth/login` - 用户登录(支持用户名/邮箱)
|
|
|
|
|
|
- `POST /api/v1/auth/reset-password` - 重置密码(需验证码)
|
|
|
|
|
|
|
|
|
|
|
|
**用户相关(需认证):**
|
|
|
|
|
|
- `GET /api/v1/user/profile` - 获取用户信息
|
|
|
|
|
|
- `PUT /api/v1/user/profile` - 更新用户信息(头像、密码)
|
|
|
|
|
|
- `POST /api/v1/user/change-email` - 更换邮箱(需验证码)
|
|
|
|
|
|
|
|
|
|
|
|
**材质管理:**
|
|
|
|
|
|
- `GET /api/v1/texture` - 搜索材质
|
|
|
|
|
|
- `GET /api/v1/texture/:id` - 获取材质详情
|
|
|
|
|
|
- `POST /api/v1/texture` - 创建材质记录
|
|
|
|
|
|
- `PUT /api/v1/texture/:id` - 更新材质
|
|
|
|
|
|
|
|
|
|
|
|
## 环境配置
|
|
|
|
|
|
|
|
|
|
|
|
### 环境变量
|
|
|
|
|
|
|
|
|
|
|
|
在项目根目录创建 `.env.local` 文件,配置以下环境变量:
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
2025-10-26 00:19:23 +08:00
|
|
|
|
NEXT_PUBLIC_API_URL=******
|
2025-10-06 18:54:26 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
## 开发指南
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
### 安装依赖
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
npm install
|
|
|
|
|
|
```
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
### 开发模式运行
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
npm run dev
|
|
|
|
|
|
```
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
### 构建生产版本
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
npm run build
|
|
|
|
|
|
npm start
|
|
|
|
|
|
```
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
## 测试工具
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
项目包含以下测试工具页面:
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
- **验证码测试工具**: `/verify-code-test`
|
|
|
|
|
|
- 支持API调用和本地模拟两种模式
|
|
|
|
|
|
- 提供详细的请求日志和错误诊断
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
- **API测试工具**: `/api-tester`
|
|
|
|
|
|
- 用于测试自定义API端点
|
|
|
|
|
|
- 支持多种HTTP方法
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
## 注意事项
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
1. 确保环境变量 `NEXT_PUBLIC_API_URL` 配置正确
|
|
|
|
|
|
2. 验证码功能依赖后端服务正常运行
|
|
|
|
|
|
3. 测试模式选择本地模拟可以在无后端服务的情况下进行前端功能测试
|
|
|
|
|
|
4. 完整的后端API文档可在 `测试用/backed/backed/README_back.md` 文件中查看
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
## 许可证
|
2025-10-06 18:54:26 +08:00
|
|
|
|
|
2025-10-26 00:19:23 +08:00
|
|
|
|
MIT
|