Saltar al contenido principal

RF08: Usuario actualiza correo

Descripción

Como usuario autenticado, quiero cambiar el correo asociado a mi cuenta para mantener mis datos de contacto actualizados (derecho de rectificación ARCO).

El cambio requiere reautenticación, verifica que el nuevo correo no esté en uso y lo confirma mediante un enlace/código de verificación enviado al nuevo correo antes de aplicarlo definitivamente.

CampoValor
MóduloAuth Module
ActorUsuario autenticado
EndpointPATCH /auth/email (solicitud) + POST /auth/email/verify (confirmación)
PrecondicionesSesión activa
PrioridadMedia (MVP/post-MVP)
EtapaMVP
Requisitos relacionadosRF02, Compliance §4

Reglas de negocio

  • RN-08.1 — Se exige reautenticación (contraseña) antes de iniciar el cambio.
  • RN-08.2 — El nuevo correo no puede estar asociado a otra cuenta activa.
  • RN-08.3 — El correo no se cambia hasta verificar la propiedad del nuevo (enlace/código con expiración corta).
  • RN-08.4 — Se notifica al correo anterior que se solicitó un cambio (alerta de seguridad).
  • RN-08.5 — Si la cuenta usa login social, el correo de contacto puede cambiarse sin desvincular el proveedor.

Validaciones de entrada

CampoReglasMensaje de error
newEmailObligatorio. Formato válido. Máx. 254 car. No en uso."Ingresa un correo válido." / "Este correo ya está en uso."
currentPasswordObligatorio (reautenticación)."Verifica tu identidad para continuar."
verificationCodeObligatorio en el paso de confirmación. No expirado."El código es inválido o expiró."

Criterios de aceptación

Escenario 1: Cambio de correo exitoso

Dado que reautentico y proporciono un correo nuevo no usado, Cuando solicito el cambio y luego confirmo el código enviado al nuevo correo, Entonces el sistema actualiza mi correo, Y responde 200 OK, Y notifica al correo anterior del cambio.

Escenario 2: Nuevo correo ya en uso

Dado que el correo nuevo pertenece a otra cuenta, Cuando solicito el cambio, Entonces el sistema responde 409 Conflict con "Este correo ya está en uso".

Escenario 3: Código de verificación inválido o expirado

Dado que ingreso un código incorrecto o vencido, Cuando confirmo el cambio, Entonces el sistema responde 400 y no actualiza el correo.

Escenario 4: Reautenticación fallida

Dado que la contraseña de reautenticación es incorrecta, Cuando solicito el cambio, Entonces el sistema responde 401 y no inicia el proceso.

Criterios no funcionales

  • El código de verificación expira (p. ej. 15 min) y es de un solo uso.
  • Consultas parametrizadas; sin inyección SQL.
  • Comunicación sobre TLS 1.2+.

Diagrama de secuencia