170 lines
4.4 KiB
Markdown
170 lines
4.4 KiB
Markdown
# 后台管理系统使用说明
|
||
|
||
## 功能概述
|
||
|
||
后台管理系统提供了完整的用户认证、内容管理、路由管理、日志查看等功能。
|
||
|
||
## 访问地址
|
||
|
||
访问 `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)` 添加日志到缓冲区。
|
||
|
||
## 技术支持
|
||
|
||
如有问题,请查看服务器日志或联系开发团队。
|