|
@@ -186,31 +186,24 @@ async def forgot_password(request: schemas.ForgotPassword, lang: str = "en"):
|
|
|
|
|
|
|
|
return {"message": "Reset instructions sent to your email"}
|
|
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:
|
|
if not token:
|
|
|
raise HTTPException(status_code=400, detail="Token required")
|
|
raise HTTPException(status_code=400, detail="Token required")
|
|
|
|
|
|
|
|
user_id = token_service.verify_reset_token(token)
|
|
user_id = token_service.verify_reset_token(token)
|
|
|
if not user_id:
|
|
if not user_id:
|
|
|
- # Translate error message
|
|
|
|
|
msg = "Invalid or expired reset token"
|
|
msg = "Invalid or expired reset token"
|
|
|
if lang == "ru": msg = "Ссылка истекла или недействительна"
|
|
if lang == "ru": msg = "Ссылка истекла или недействительна"
|
|
|
elif lang == "me": msg = "Link je istekao ili je nevažeći"
|
|
elif lang == "me": msg = "Link je istekao ili je nevažeći"
|
|
|
elif lang == "ua": msg = "Посилання закінчилося або є недійсним"
|
|
elif lang == "ua": msg = "Посилання закінчилося або є недійсним"
|
|
|
-
|
|
|
|
|
raise HTTPException(status_code=400, detail=msg)
|
|
raise HTTPException(status_code=400, detail=msg)
|
|
|
|
|
|
|
|
return {"message": "Token is valid"}
|
|
return {"message": "Token is valid"}
|