|
|
@@ -187,36 +187,32 @@ 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):
|
|
|
- # DEBUG LOGS
|
|
|
- print(f"DEBUG: verify_reset_token method={request.method}")
|
|
|
- print(f"DEBUG: query_params={request.query_params}")
|
|
|
- print(f"DEBUG: referer={request.headers.get('referer')}")
|
|
|
-
|
|
|
+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:
|
|
|
- raw_body = await request.body()
|
|
|
- print(f"DEBUG: raw_body={raw_body}")
|
|
|
body = await request.json()
|
|
|
- print(f"DEBUG: parsed_json={body}")
|
|
|
if body and body.get("token"):
|
|
|
token = body.get("token")
|
|
|
- except Exception as e:
|
|
|
- print(f"DEBUG: body parse error: {e}")
|
|
|
+ except Exception:
|
|
|
pass
|
|
|
|
|
|
- print(f"DEBUG: final token found: {token}")
|
|
|
-
|
|
|
if not token:
|
|
|
raise HTTPException(status_code=400, detail="Token required")
|
|
|
|
|
|
user_id = token_service.verify_reset_token(token)
|
|
|
if not user_id:
|
|
|
- raise HTTPException(status_code=400, detail="Invalid or expired reset token")
|
|
|
+ # 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"}
|
|
|
|
|
|
@router.post("/reset-password")
|