Saltar al contenido principal

Verificar Email de Registro

Paso de verificación del registro v1: valida el código de 6 dígitos enviado por email y habilita la finalización del registro con contraseña.


Contexto de Uso (Registro v1)

Este endpoint se usa en el flujo legacy de registro:

  1. Iniciar registro: POST /auth/register → retorna token
  2. Verificar email (este endpoint): POST /auth/register/verify?token=... → valida code
  3. Completar registro: POST /auth/register?token=... → crea la contraseña y finaliza el registro

POST/auth/register/verify?token={token}

Verifica el código de 6 dígitos enviado por email durante el registro v1

📋 Parámetros

tokenstringrequerido

Token de sesión obtenido al iniciar registro (Paso 1)

codestringrequerido

Código numérico de 6 dígitos recibido por email

📤 Respuesta

{
"code": 3001,
"message": "Email verified successfully.",
"data": null
}

Validaciones

code

  • Debe existir
  • Debe cumplir regex: /^\\d{6}$/
  • Ejemplo válido: "123456"

token

  • Debe existir (query param)
  • Debe corresponder a una sesión de registro activa en Redis

Qué valida internamente (Redis)

El backend utiliza estas claves:

  • session:${token}
    Debe existir. Representa la sesión de registro asociada al token.

  • sessionCode:${token}
    Debe existir. Contiene el código real enviado por email.

Si code coincide, se marca:

  • verify:${token} = "true" con TTL de 300 segundos (5 minutos)

Nota: el endpoint no elimina session:${token} (queda para el Paso 3).
La verificación solo habilita la finalización del registro por una ventana limitada.


Respuestas

✅ Verificación Exitosa

Email verificado

Código 3001 - Email verificado correctamente.

{
"code": 3001,
"message": "Email verified successfully.",
"data": null
}

Después de esto:

  • Debes completar el registro con POST /auth/register?token={token} dentro de 5 minutos (mientras verify:{token} sea válido).

❌ Datos faltantes o inválidos (formato)

Datos inválidos

Código 4006 - Falta token, falta code, o code no cumple el formato.

{
"code": 4006,
"message": "Missing required data."
}

HTTP: 400 Bad Request


❌ Token de sesión inválido

Token inválido

Código 4015 - No existe session:{token} (token inválido o sesión eliminada/expirada).

{
"code": 4015,
"message": "Invalid token."
}

HTTP: 400 Bad Request

Acción sugerida:

  • Reiniciar registro desde POST /auth/register.

❌ Token de verificación inválido (código no disponible)

Token de verificación inválido

Código 4004 - No existe sessionCode:{token} (no hay código asociado o expiró).

{
"code": 4004,
"message": "The verification token is invalid."
}

HTTP: 401 Unauthorized

Acción sugerida:

  • Solicitar un nuevo código (reenvío) o reiniciar el registro.

❌ Código incorrecto

Código incorrecto

Código 4005 - El code no coincide con sessionCode:{token}.

{
"code": 4005,
"message": "Invalid verification code."
}

HTTP: 401 Unauthorized

Acción sugerida:

  • Reintentar con el código correcto.

Ejemplos

cURL

curl -X POST \
'https://api.swapbits.co/auth/register/verify?token=550e8400-e29b-41d4-a716-446655440000' \
-H 'Content-Type: application/json' \
-d '{"code":"123456"}'

JavaScript (Fetch)

async function verifyRegisterEmail(token, code) {
const res = await fetch(`https://api.swapbits.co/auth/register/verify?token=${token}`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ code })
});

return res.json();
}

Notas Importantes

Ventana para completar registro

Al verificar el email, el backend crea verify:{token} = "true" con TTL de 5 minutos.

Si pasan 5 minutos, deberás verificar nuevamente (o reiniciar el registro según la implementación de reenvío).


Enlaces Relacionados