corrected "Method not allowed" error

This commit is contained in:
Fanilo-Nantenaina 2025-12-02 10:21:54 +03:00
parent 8c98a96630
commit 4b9adba739

View file

@ -1,4 +1,3 @@
# auth/routes.py
from fastapi import APIRouter, Depends, HTTPException, status, Request
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
@ -194,13 +193,57 @@ async def register(
}
@router.get("/verify-email")
async def verify_email_get(
token: str,
session: AsyncSession = Depends(get_session)
):
"""
Vérification de l'email via lien cliquable (GET)
Utilisé quand l'utilisateur clique sur le lien dans l'email
"""
result = await session.execute(
select(User).where(User.verification_token == token)
)
user = result.scalar_one_or_none()
if not user:
return {
"success": False,
"message": "Token de vérification invalide ou déjà utilisé."
}
# Vérifier l'expiration
if user.verification_token_expires < datetime.now():
return {
"success": False,
"message": "Token expiré. Veuillez demander un nouvel email de vérification.",
"expired": True
}
# Activer le compte
user.is_verified = True
user.verification_token = None
user.verification_token_expires = None
await session.commit()
logger.info(f"✅ Email vérifié: {user.email}")
return {
"success": True,
"message": "✅ Email vérifié avec succès ! Vous pouvez maintenant vous connecter.",
"email": user.email
}
@router.post("/verify-email")
async def verify_email(
async def verify_email_post(
data: VerifyEmailRequest,
session: AsyncSession = Depends(get_session)
):
"""
Vérification de l'email via token
Vérification de l'email via API (POST)
Utilisé pour les appels programmatiques depuis le frontend
"""
result = await session.execute(
select(User).where(User.verification_token == data.token)