feat: JWT auth, user management, audit logging system

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
enzo
2026-07-22 16:52:09 +08:00
co-authored by Claude
parent 7441546804
commit e13be8eb1c
15 changed files with 562 additions and 0 deletions
View File
+23
View File
@@ -0,0 +1,23 @@
from pydantic import BaseModel
class LoginRequest(BaseModel):
username: str
password: str
class RegisterRequest(BaseModel):
username: str
email: str # 先用 str,后续升级 EmailStr
password: str
class TokenResponse(BaseModel):
access_token: str
token_type: str = "bearer"
expires_in: int = 0
class ChangePasswordRequest(BaseModel):
old_password: str
new_password: str
+19
View File
@@ -0,0 +1,19 @@
from pydantic import BaseModel, ConfigDict
from datetime import datetime
class UserResponse(BaseModel):
id: str
username: str
email: str
role: str
is_active: bool
is_approved: bool
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class UserUpdateRequest(BaseModel):
role: str | None = None
is_active: bool | None = None