feat: 新增多格式文件上传入库与认证体系
- 新增 JWT 认证模块,支持登录/注册/用户管理 - 新增文件上传接口,支持 .txt/.md/.html/.pdf/.docx 等格式解析入库 - 新增检索结果 AI 总结功能 - 新增文本去重缓存机制 - 新增全局认证夹具简化测试 - 新增配置项与环境变量支持 - 完善文档与测试覆盖
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
"""认证相关数据模型"""
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
"""登录请求"""
|
||||
|
||||
username: str = Field(description="用户名")
|
||||
password: str = Field(description="明文密码")
|
||||
|
||||
|
||||
class RegisterRequest(BaseModel):
|
||||
"""注册请求"""
|
||||
|
||||
username: str = Field(min_length=3, max_length=32, description="用户名(3-32 字符)")
|
||||
password: str = Field(min_length=6, max_length=128, description="密码(6-128 字符)")
|
||||
|
||||
|
||||
class AuthUser(BaseModel):
|
||||
"""对外暴露的用户信息(不含密码)"""
|
||||
|
||||
username: str = Field(description="用户名")
|
||||
role: str = Field(default="user", description="角色:admin | user")
|
||||
created_at: datetime = Field(description="创建时间")
|
||||
|
||||
|
||||
class StoredUser(AuthUser):
|
||||
"""存储层用户:含密码哈希,仅内部使用,不对外暴露"""
|
||||
|
||||
hashed_password: str = Field(description="bcrypt 密码哈希")
|
||||
|
||||
|
||||
class TokenResponse(BaseModel):
|
||||
"""登录成功返回的 token 信息"""
|
||||
|
||||
access_token: str = Field(description="JWT access token")
|
||||
token_type: str = Field(default="bearer", description="token 类型")
|
||||
expires_in: int = Field(description="token 有效期(秒)")
|
||||
user: AuthUser = Field(description="登录用户信息")
|
||||
Reference in New Issue
Block a user