修复限流器问题

This commit is contained in:
2026-04-01 16:05:57 +08:00
parent 4e99ca2b21
commit 23319d8e10
8 changed files with 129 additions and 95 deletions

View File

@@ -7,31 +7,38 @@ Author: Canglan <admin@sea-studio.top>
License: AGPL v3
"""
from fastapi import APIRouter, HTTPException
from fastapi import APIRouter, HTTPException, Request
from ...dependencies import CurrentUserDependency, DbDependency
from ...models import User
from ...schemas import UserResponse, UserUpdateRequest
from ...utils.security import hash_password, verify_password
from ...utils.logger import logger
from ...middleware.rate_limit import rate_limit
router = APIRouter(prefix="/api/v1/user", tags=["user"])
@router.get("/profile", response_model=UserResponse)
async def get_profile(current_user: CurrentUserDependency):
@rate_limit(requests=50, period=60)
async def get_profile(
request: Request, # 添加 request 参数
current_user: CurrentUserDependency
):
"""获取当前用户信息"""
return current_user
@router.put("/profile", response_model=UserResponse)
@rate_limit(requests=20, period=60)
async def update_profile(
request: UserUpdateRequest,
request: Request, # 添加 request 参数
req: UserUpdateRequest,
current_user: CurrentUserDependency,
db: DbDependency
):
"""更新用户信息"""
if request.username:
current_user.username = request.username
if request.avatar:
current_user.avatar = request.avatar
if req.username:
current_user.username = req.username
if req.avatar:
current_user.avatar = req.avatar
db.commit()
db.refresh(current_user)
@@ -40,7 +47,9 @@ async def update_profile(
return current_user
@router.post("/change-password")
@rate_limit(requests=10, period=60)
async def change_password(
request: Request, # 添加 request 参数
old_password: str,
new_password: str,
current_user: CurrentUserDependency,