- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
2.4 KiB
2.4 KiB
Agent-Auth 依赖关系
依赖概览
Agent-Auth是基础模块,不依赖其他业务模块,但依赖系统基础设施。
输入依赖
1. 系统基础设施
app/config/settings.py- 系统配置app/config/database.py- 数据库连接app/core/logger.py- 日志系统app/models/base.py- 基础模型类app/schemas/base.py- 基础Schema类
2. 第三方库
fastapi- Web框架sqlalchemy- ORMpasslib[bcrypt]- 密码加密python-jose[cryptography]- JWT处理redis- 缓存(用于Token黑名单)
3. 环境变量
SECRET_KEY=必需
ALGORITHM=可选(默认HS256)
ACCESS_TOKEN_EXPIRE_MINUTES=可选(默认30)
REFRESH_TOKEN_EXPIRE_DAYS=可选(默认7)
输出接口
1. 依赖注入函数
其他所有模块都会使用这些函数:
# app/api/deps.py 或 app/core/deps.py
async def get_current_user() -> User
async def get_current_active_user() -> User
async def get_optional_current_user() -> Optional[User]
# 角色检查器
require_admin = RoleChecker(["admin"])
require_manager = RoleChecker(["admin", "manager"])
require_trainer = RoleChecker(["admin", "manager", "trainer"])
2. 安全工具函数
# app/core/security.py
def verify_password(plain_password: str, hashed_password: str) -> bool
def get_password_hash(password: str) -> str
def create_access_token(subject: int, **kwargs) -> str
def create_refresh_token(subject: int) -> str
def verify_token(token: str) -> dict
3. 数据模型
# app/models/user.py
class User(BaseModel, AuditMixin):
# 被所有其他模块引用的用户模型
pass
4. API端点
POST /api/v1/auth/login
POST /api/v1/auth/register
POST /api/v1/auth/logout
POST /api/v1/auth/refresh
POST /api/v1/auth/reset-password
被依赖情况
以下模块依赖Auth模块:
- 所有模块 - 使用认证和权限检查
- Agent-User - 使用User模型
- Agent-Course - 使用get_current_user
- Agent-Exam - 使用get_current_user
- Agent-Training - 使用get_current_user
- Agent-Analytics - 使用权限检查
- Agent-Admin - 使用require_admin
接口稳定性
⚠️ 关键接口,需保持稳定
- 修改认证逻辑会影响所有模块
- Token格式变更需要通知所有模块
- User模型字段变更需要评估影响
测试依赖
- 需要模拟Redis服务
- 需要测试数据库
- 需要模拟邮件服务(密码重置)