Kaynağa Gözat

fix: correctly handle both query and body for token verification

unknown 2 gün önce
ebeveyn
işleme
4ee0d818e1
1 değiştirilmiş dosya ile 8 ekleme ve 7 silme
  1. 8 7
      backend/routers/auth.py

+ 8 - 7
backend/routers/auth.py

@@ -1,4 +1,4 @@
-from fastapi import APIRouter, Request, Depends, HTTPException, WebSocket, WebSocketDisconnect, Query
+from fastapi import APIRouter, Request, Depends, HTTPException, WebSocket, WebSocketDisconnect, Query, Body
 from typing import Optional, List
 from services.global_manager import global_manager
 from services.rate_limit_service import rate_limit_service
@@ -186,15 +186,16 @@ async def forgot_password(request: schemas.ForgotPassword, lang: str = "en"):
     
     return {"message": "Reset instructions sent to your email"}
 
-@router.post("/verify-reset-token")
-@router.get("/verify-reset-token")
-async def verify_reset_token(token: Optional[str] = None, request: Optional[schemas.TokenVerify] = None):
+@router.api_route("/verify-reset-token", methods=["GET", "POST"])
+async def verify_reset_token(
+    token: Optional[str] = Query(None),
+    data: Optional[schemas.TokenVerify] = Body(None)
+):
     target_token = token
-    if request and request.token:
-        target_token = request.token
+    if data and data.token:
+        target_token = data.token
     
     if not target_token:
-        # If it's pure GET without query param but should have been caught by param default
         raise HTTPException(status_code=400, detail="Token required")
 
     user_id = token_service.verify_reset_token(target_token)