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