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:
- Iniciar registro:
POST /auth/register→ retornatoken - Verificar email (este endpoint):
POST /auth/register/verify?token=...→ validacode - Completar registro:
POST /auth/register?token=...→ crea la contraseña y finaliza el registro
/auth/register/verify?token={token}Verifica el código de 6 dígitos enviado por email durante el registro v1
📋 Parámetros
tokenstringrequeridoToken de sesión obtenido al iniciar registro (Paso 1)
codestringrequeridoCó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 (mientrasverify:{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).