chore: 完成全量功能迭代与部署准备
- 移除冗余依赖包 - 新增账号禁用校验与用户管理能力 - 新增文档下载与管理页面文件展示 - 新增API文档页面与用户管理前端页面 - 重构时区处理与docker-compose部署配置 - 完善测试用例与项目文档
This commit is contained in:
+4
-4
@@ -4,7 +4,7 @@
|
||||
鉴权(get_current_user)以 JWT 自包含信息为主,Redis 不可用时降级可用。
|
||||
"""
|
||||
|
||||
from datetime import UTC, datetime, timedelta
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
import bcrypt
|
||||
import jwt
|
||||
@@ -67,7 +67,7 @@ def verify_password(password: str, hashed: str) -> bool:
|
||||
|
||||
def create_access_token(username: str, role: str) -> tuple[str, int]:
|
||||
"""签发 JWT,返回 (token, expires_in_seconds)"""
|
||||
now = datetime.now(UTC)
|
||||
now = datetime.now(timezone.utc)
|
||||
expire = now + timedelta(minutes=settings.jwt_expire_minutes)
|
||||
payload = {
|
||||
"sub": username,
|
||||
@@ -136,7 +136,7 @@ class UserStore:
|
||||
user = StoredUser(
|
||||
username=username,
|
||||
role=role,
|
||||
created_at=datetime.now(UTC),
|
||||
created_at=datetime.now(timezone.utc),
|
||||
hashed_password=hash_password(password),
|
||||
)
|
||||
try:
|
||||
@@ -203,7 +203,7 @@ async def get_current_user(
|
||||
)
|
||||
# Redis 不可用或用户不存在(可能已删除):降级用 JWT payload
|
||||
logger.warning("用户存储查询未命中,降级使用 JWT payload", username=username)
|
||||
return AuthUser(username=username, role=role, created_at=datetime.now(UTC))
|
||||
return AuthUser(username=username, role=role, created_at=datetime.now(timezone.utc))
|
||||
|
||||
|
||||
async def require_admin(user: AuthUser = Depends(get_current_user)) -> AuthUser:
|
||||
|
||||
Reference in New Issue
Block a user