Przeglądaj źródła

fix: split verify-reset-token into separate methods to fix hang

unknown 2 dni temu
rodzic
commit
ea0e636a08
1 zmienionych plików z 9 dodań i 16 usunięć
  1. 9 16
      backend/routers/auth.py

+ 9 - 16
backend/routers/auth.py

@@ -186,31 +186,24 @@ async def forgot_password(request: schemas.ForgotPassword, lang: str = "en"):
     
     return {"message": "Reset instructions sent to your email"}
 
-@router.api_route("/verify-reset-token", methods=["GET", "POST"])
-async def verify_reset_token(request: Request, lang: str = "en"):
-    # Try Query param first (GET or POST)
-    token = request.query_params.get("token")
-    
-    # Try Body if POST
-    if request.method == "POST":
-        try:
-            body = await request.json()
-            if body and body.get("token"):
-                token = body.get("token")
-        except Exception:
-            pass
-            
+@router.post("/verify-reset-token")
+async def verify_reset_token_post(data: schemas.TokenVerify, lang: str = "en"):
+    return await _verify_token_internal(data.token, lang)
+
+@router.get("/verify-reset-token")
+async def verify_reset_token_get(token: str, lang: str = "en"):
+    return await _verify_token_internal(token, lang)
+
+async def _verify_token_internal(token: str, lang: str):
     if not token:
         raise HTTPException(status_code=400, detail="Token required")
 
     user_id = token_service.verify_reset_token(token)
     if not user_id:
-        # Translate error message
         msg = "Invalid or expired reset token"
         if lang == "ru": msg = "Ссылка истекла или недействительна"
         elif lang == "me": msg = "Link je istekao ili je nevažeći"
         elif lang == "ua": msg = "Посилання закінчилося або є недійсним"
-        
         raise HTTPException(status_code=400, detail=msg)
     
     return {"message": "Token is valid"}