lingmin_package@163.com b41b8efe8e 删除前端和增加异常处理规范 3 周之前
..
FINAL_SUMMARY.md 82b1b89f3b 管理平台的重构调整 1 月之前
README.md 7941d95797 README.md说明提交 1 月之前
REFACTOR_COMPLETE.md 82b1b89f3b 管理平台的重构调整 1 月之前
项目结构.md 82b1b89f3b 管理平台的重构调整 1 月之前
项目记录信息.md 2846b0d9cb 依赖组件版本修改 3 周之前
项目调整说明.md 091aa469a7 菜单优化调整 3 周之前
项目追加开发说明.md b41b8efe8e 删除前端和增加异常处理规范 3 周之前

README.md

LQAdminPlatform - OAuth2 单点登录认证中心

项目简介

LQAdminPlatform 是一个基于 FastAPI 的 OAuth2 单点登录认证中心,提供统一的用户认证、授权管理和样本中心功能。

功能模块

1. 系统管理

  • 用户管理
  • 角色管理
  • 菜单管理
  • 权限管理
  • 系统日志
  • 仪表盘
  • 应用管理

2. 授权管理

  • SSO 验证凭证
  • 授权码生成与管理
  • Access Token 管理
  • 用户信息获取
  • JWT Token 管理
  • 子系统登录认证

3. 样本中心

  • 知识库管理
  • 文档管理
  • 知识片段管理
  • 标签管理
  • 检索引擎
  • 图片管理

环境准备

创建虚拟环境

# 使用 conda
conda create --name lq_oauth2 python=3.12
conda activate lq_oauth2

# 或使用 venv
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

安装依赖

pip install -r requirements/base.txt

# 开发环境额外依赖
pip install -r requirements/dev.txt

快速开始

1. 配置环境变量

复制 .env.example.env 并配置:

# 数据库配置
DATABASE_URL=mysql://user:password@localhost:3306/sso_db

# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379

# 应用配置
APP_NAME=LQAdminPlatform
HOST=0.0.0.0
PORT=8000
DEBUG=True

# JWT配置
JWT_SECRET_KEY=your-secret-key
ACCESS_TOKEN_EXPIRE_MINUTES=30

2. 初始化数据库

python scripts/init_db.py

3. 启动服务

开发环境(推荐)

# 使用新的启动脚本(自动查找可用端口)
python run_server.py



#### 生产环境

bash

使用 uvicorn

uvicorn app.server.app:app --host 0.0.0.0 --port 8000

使用 gunicorn(推荐)

gunicorn app.server.app:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000


### 4. 访问服务

- **API 文档**: http://localhost:8000/docs
- **ReDoc 文档**: http://localhost:8000/redoc
- **健康检查**: http://localhost:8000/health

## 项目结构

LQAdminPlatform/ ├── src/ │ ├── app/ │ │ ├── server/ # 服务器启动模块 │ │ ├── logger/ # 日志配置 │ │ ├── base/ # 基础连接(MySQL、Redis、Milvus) │ │ ├── core/ # 核心模块(异常等) │ │ ├── models/ # 数据模型 │ │ ├── schemas/ # 数据结构 │ │ ├── utils/ # 工具类 │ │ ├── config/ # 配置文件 │ │ ├── system/ # 系统管理模块 │ │ ├── oauth/ # 授权管理模块 │ │ └── sample/ # 样本中心模块 │ └── views/ # 视图路由 ├── scripts/ # 脚本文件 ├── test/ # 测试文件 ├── requirements/ # 依赖文件 ├── run_server.py # 启动脚本(新) └── full_server.py # 启动脚本(旧,保留兼容)


详细的项目结构说明请查看 [REFACTOR_README.md](./REFACTOR_README.md)

## 授权中心

### 授权后台

bash cd LQAdminPlatform python run_server.py

访问: http://localhost:8000/docs


### 授权前台

bash cd LQAdminFront npm install npm run dev-local

访问: http://localhost:3000

默认账号: admin / Admin123456


## 授权子系统案例

### 子系统后台

bash cd subsystem-demo/backend python main.py

访问: http://localhost:8001/docs


### 子系统前台

bash cd subsystem-demo/frontend npm install npm run dev

访问: http://localhost:3001


### 子系统配置

在子系统中配置以下环境变量:

env CLIENT_ID=eqhoIdAyAWbA8MsYHsNqQqNLJbCayTjY CLIENT_SECRET=LKJm5XHJFhhgxSv9nQhoQNNI3wrKyWGZCaPQ4qc43Lf5qfXdLAHoGAHhCYqApEpr SSO_SERVER_URL=http://localhost:8000


## API 端点

### 系统管理
- `GET /api/v1/system/dashboard` - 仪表盘
- `GET /api/v1/system/users` - 用户列表
- `GET /api/v1/system/roles` - 角色列表
- `GET /api/v1/system/menus` - 菜单列表
- `GET /api/v1/system/logs` - 系统日志

### 授权管理
- `GET /api/v1/oauth/authorize` - OAuth2 授权
- `POST /api/v1/oauth/token` - 获取令牌
- `GET /api/v1/oauth/userinfo` - 用户信息
- `POST /api/v1/oauth/revoke` - 撤销令牌

### 样本中心
- `GET /api/v1/sample/knowledge-bases` - 知识库列表
- `GET /api/v1/sample/documents` - 文档列表
- `POST /api/v1/sample/documents` - 上传文档
- `POST /api/v1/sample/search` - 检索文档

## 开发指南

### 添加新功能

1. 在对应模块下创建 model(如需要)
2. 在对应模块下创建 schema
3. 在 views 目录下创建或更新视图路由
4. 在 server/app.py 中注册路由

### 运行测试

bash

运行所有测试

pytest

运行特定测试

pytest test/test_auth.py

查看覆盖率

pytest --cov=app


### 代码规范

项目使用以下工具保证代码质量:

- **Black**: 代码格式化
- **isort**: 导入排序
- **flake8**: 代码检查
- **mypy**: 类型检查

bash

格式化代码

black src/

排序导入

isort src/

检查代码

flake8 src/


## 部署

### Docker 部署

bash

构建镜像

docker build -t lqadmin:latest .

运行容器

docker run -d -p 8000:8000 --env-file .env lqadmin:latest


### Docker Compose 部署

bash docker-compose up -d


## 常见问题

### 1. 端口被占用

启动脚本会自动查找可用端口(8000-8010),或手动指定:

bash PORT=8001 python run_server.py ```

2. 数据库连接失败

检查 .env 文件中的 DATABASE_URL 配置是否正确。

3. Redis 连接失败

Redis 为可选组件,连接失败不会影响核心功能,但会影响缓存和会话管理。

更新日志

v1.0.0 (2024-01-15)

  • ✅ 完成项目结构重构
  • ✅ 按功能模块划分(system、oauth、sample)
  • ✅ 统一日志配置
  • ✅ 统一数据库连接管理
  • ✅ 新增模块化视图路由

详细更新日志请查看 REFACTOR_README.md

贡献指南

欢迎提交 Issue 和 Pull Request!

许可证

MIT License

联系方式

如有问题,请联系开发团队。