# 后台管理系统使用说明

## 功能概述

后台管理系统提供了完整的用户认证、内容管理、路由管理、日志查看等功能。

## 访问地址

访问 `http://localhost:3355/admin` 进入后台管理界面。

## 用户注册和登录

### 注册

1. 首次访问后台管理页面，点击"注册"标签
2. 填写以下信息：
   - **用户名**：3-50个字符
   - **邮箱**：有效的邮箱地址
   - **密码**：必须满足以下要求：
     - 至少8个字符
     - 包含至少一个大写字母
     - 包含至少一个小写字母
     - 包含至少一个数字
     - 包含至少一个特殊字符
     - 不能是常见弱密码（如 password、123456 等）
     - 不能全部是相同字符

3. **重要**：第一个注册的用户将自动成为管理员

### 登录

1. 使用注册的用户名和密码登录
2. 登录成功后会自动跳转到管理界面

## 功能模块

### 1. 仪表盘

显示系统概览信息：
- 用户总数
- 路由总数
- 日志条目数
- 服务器时间

### 2. 路由管理

可以添加、编辑、删除路由：

- **HTTP 方法**：GET、POST、PUT、DELETE、PATCH
- **路径**：路由路径（如 `/api/example`）
- **类型**：
  - `view`：视图路由
  - `json`：JSON 接口
  - `file`：文件路由
  - `static`：静态文件
  - `custom`：自定义处理
- **处理器/文件路径**：处理函数或文件路径
- **描述**：路由描述（可选）
- **启用状态**：是否启用该路由
- **排序**：路由执行顺序

### 3. 文件管理

- 浏览服务器文件
- 查看文件内容
- 编辑文件（需要手动实现保存功能）

### 4. 配置管理

可以编辑以下配置文件：
- `tool-status.json`
- `update-info.json`
- `media-types.json`

操作步骤：
1. 选择要编辑的配置文件
2. 点击"加载配置"加载当前配置
3. 在编辑器中修改 JSON 内容
4. 点击"保存配置"保存更改

### 5. 日志查看

- 实时查看系统日志
- 支持刷新和清空日志
- 日志级别：INFO、WARN、ERROR

## API 接口

### 认证接口

- `POST /admin/register` - 用户注册
- `POST /admin/login` - 用户登录
- `POST /admin/logout` - 用户登出
- `GET /admin/me` - 获取当前用户信息

### 管理接口（需要管理员权限）

- `GET /admin/api/logs` - 获取日志
- `GET /admin/api/routes` - 获取所有路由
- `POST /admin/api/routes` - 创建路由
- `PUT /admin/api/routes/:id` - 更新路由
- `DELETE /admin/api/routes/:id` - 删除路由
- `GET /admin/api/files` - 获取文件列表
- `GET /admin/api/file` - 读取文件
- `POST /admin/api/file` - 保存文件
- `PUT /admin/api/config` - 更新配置文件
- `GET /admin/api/system` - 获取系统信息
- `POST /admin/api/reload` - 热重载（需要重启服务器）

## 安全说明

1. **密码强度**：系统强制要求强密码，防止弱密码攻击
2. **JWT 认证**：使用 JWT Token 进行身份验证
3. **权限控制**：只有管理员可以访问管理功能
4. **路径验证**：文件操作会验证路径，防止目录遍历攻击

## 数据库

系统使用 SQLite 数据库，数据库文件位于 `data/app.db`。

### 数据表

- **users**：用户表
  - id, username, email, password, is_admin, is_active
- **routes**：路由表
  - id, method, path, type, handler, description, is_active, order

## 注意事项

1. **第一个用户**：第一个注册的用户自动成为管理员，请妥善保管账号
2. **热重载**：路由热重载功能需要重启服务器才能生效
3. **文件编辑**：文件编辑功能需要谨慎使用，建议先备份
4. **日志限制**：日志缓冲区最多保存 1000 条记录

## 故障排除

### 无法登录

1. 检查用户名和密码是否正确
2. 确认账户未被禁用（is_active = true）
3. 检查浏览器 Cookie 是否被禁用

### 权限不足

1. 确认当前用户是管理员（is_admin = true）
2. 检查 Token 是否有效
3. 尝试重新登录

### 数据库错误

1. 检查 `data` 目录权限
2. 确认 SQLite 数据库文件可写
3. 查看服务器日志获取详细错误信息

## 开发扩展

### 添加新的管理功能

1. 在 `handlers/admin.go` 中添加处理函数
2. 在 `config/routes.go` 中注册路由
3. 在前端 `admin.html` 和 `admin.js` 中添加界面

### 自定义日志记录

使用 `handlers.AddLog(level, message)` 添加日志到缓冲区。

## 技术支持

如有问题，请查看服务器日志或联系开发团队。
