Saltar al contenido principal

Reenviar Código de Registro

Endpoint para solicitar el reenvío de un nuevo código de verificación de 6 dígitos durante el registro v1. Incluye cooldown de 30 segundos para prevenir abuso.


Contexto de Uso

Este endpoint se usa en el flujo Registro v1 cuando:

  • El usuario no recibió el correo con el código
  • El código expiró (TTL 5 minutos)
  • El usuario necesita que se envíe un nuevo código sin reiniciar todo el registro

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

Genera y envía un nuevo código de verificación al email del usuario (Registro v1) y activa cooldown anti-spam

📋 Parámetros

tokenstringrequerido

Token de sesión UUID obtenido en el Paso 1 del registro

📤 Respuesta

{
"code": 1010,
"message": "Verification code sent successfully.",
"data": {
  "cooldown": 30
}
}

Validaciones

Token de sesión (token)

  • Debe existir (query param).
  • Debe corresponder a una sesión activa en Redis:
    • session:${token} debe existir.

Si no existe, el backend responde con 4015 (token inválido).


Qué hace internamente (Redis + Email)

1) Verifica sesión

  • Lee session:${token} para obtener el email asociado al registro.

2) Aplica cooldown (anti-spam)

  • Usa: resend_cooldown:register:${token}
  • Si existe, devuelve error 4030 con HTTP 429.

3) Genera y guarda un nuevo código (6 dígitos)

  • Genera newCode
  • Guarda en Redis: code:${token} con TTL 5 minutos
    • Esto reemplaza el valor anterior si existía (el código anterior queda inválido).

4) Envía email

  • Envía plantilla: account_verification_code

5) Activa cooldown por 30s

  • Guarda resend_cooldown:register:${token} = "true" con TTL 30 segundos

Respuestas

✅ Código reenviado exitosamente

Código reenviado

Código 1010 - Se envió un nuevo código de verificación.

{
"code": 1010,
"message": "Verification code sent successfully.",
"data": {
"cooldown": 30
}
}

Notas:

  • El código nuevo expira en 5 minutos.
  • Se activa un cooldown de 30s antes de permitir otro reenvío.

⏳ Cooldown activo

Cooldown activo

Código 4030 - Debes esperar 30 segundos antes de solicitar otro código.

{
"code": 4030,
"message": "Please wait 30 seconds before requesting another code"
}

HTTP: 429 Too Many Requests


❌ Token inválido o sesión no encontrada

Token inválido

Código 4015 - No existe session:{token} en Redis (token inválido o expirado).

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

HTTP: 400 Bad Request

Acción sugerida:

  • Reiniciar registro desde POST /auth/register.

❌ Datos faltantes

Datos faltantes

Código 4006 - Falta el parámetro token.

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

HTTP: 400 Bad Request


Ejemplos

cURL

curl -X POST \
'https://api.swapbits.co/auth/register/resend?token=550e8400-e29b-41d4-a716-446655440000' \
-H 'Content-Type: application/json'

JavaScript/TypeScript (Fetch)

async function resendRegisterCode(token) {
const res = await fetch(
`https://api.swapbits.co/auth/register/resend?token=${token}`,
{ method: 'POST', headers: { 'Content-Type': 'application/json' } }
);
return res.json();
}

Notas Importantes

Recomendación Frontend

Cuando recibas code: 1010, deshabilita el botón de reenvío por 30 segundos para evitar llegar a 4030.

Registro v1

Este endpoint aplica al flujo Registro v1 (legacy). Si el token ya expiró o no existe, el usuario debe reiniciar el proceso desde el Paso 1.


Enlaces Relacionados