用户管理 Domain
概述
用户管理模块负责用户认证、权限控制和账户管理功能。
数据模型
User (用户)
class User(BaseModel):
id: str # 用户ID
username: str # 用户名
email: str # 邮箱
user_type: UserType # 用户类型 (admin | user)
status: UserStatus # 用户状态 (active | inactive)
created_at: datetime # 创建时间
updated_at: datetime # 更新时间
UserType (用户类型枚举)
class UserType(str, Enum):
ADMIN = "admin" # 管理员
USER = "user" # 普通用户
UserStatus (用户状态枚举)
class UserStatus(str, Enum):
ACTIVE = "active" # 激活状态
INACTIVE = "inactive" # 非激活状态
LoginRequest (登录请求)
class LoginRequest(BaseModel):
username: str # 用户名
password: str # 密码
captcha: str # 验证码
LoginResponse (登录响应)
class LoginResponse(BaseModel):
access_token: str # 访问令牌
token_type: str # 令牌类型
user: User # 用户信息
业务规则
用户认证
- 支持用户名/密码登录
- 使用JWT令牌进行身份验证
- 令牌有效期为7天
- 密码使用PBKDF2加密存储
权限控制
- 管理员权限:用户管理、券商管理、数据源管理
- 普通用户权限:查看自己的数据、券商配置
- 敏感信息对普通用户隐藏
默认用户
- 系统自动创建默认管理员用户:
test_for_dev
: 默认管理员账户,密码test_only_for_dev
⚠️ 生产环境安全要求
- 重要: 系统初始化后,请立即创建自己的管理员账户
- 必须: 在生产环境中删除
test_for_dev
默认用户 - 禁止: 在生产环境使用默认账户进行日常操作
API设计
认证相关
POST /api/v1/auth/login
- 用户登录GET /api/v1/auth/me
- 获取当前用户信息
用户管理(管理员权限)
GET /api/v1/users
- 获取用户列表POST /api/v1/users
- 创建用户GET /api/v1/users/{id}
- 获取用户详情PUT /api/v1/users/{id}
- 更新用户DELETE /api/v1/users/{id}
- 删除用户
安全考虑
- 密码加密存储(PBKDF2)
- JWT令牌认证
- 权限分级控制
- 敏感信息脱敏显示