corrected "Method not allowed" error
This commit is contained in:
parent
8c98a96630
commit
4b9adba739
1 changed files with 46 additions and 3 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue