Reenviar Verificación
Envía un nuevo email de verificación al usuario. Usa esto cuando el email de verificación original no fue recibido o el token expiró.
Endpoint
POST /api/v1/auth/resend-verification
Autenticación
No se requiere autenticación (endpoint público).
Request
Content-Type
application/json
Request Body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
email | string | Sí | Dirección de email para reenviar verificación |
Ejemplo de Request
{
"email": "juan@ejemplo.com"
}
Response
Response Exitoso (200 OK)
{
"message": "Email de verificación enviado exitosamente",
"success": true
}
Ejemplos
curl -X POST https://api.callcov.com/api/v1/auth/resend-verification \-H "Content-Type: application/json" \-d '{ "email": "juan@ejemplo.com"}'Errores
400 Bad Request
Email ya verificado:
{
"detail": "Email ya verificado"
}
404 Not Found
Usuario no encontrado:
{
"detail": "Usuario no encontrado"
}
500 Internal Server Error
Error al enviar email:
{
"detail": "Error al enviar email de verificación"
}
Comportamiento
Cuando este endpoint es llamado:
- Invalida todos los tokens de verificación anteriores para este usuario
- Genera un nuevo token de verificación (expira en 15 minutos)
- Envía nuevo email de verificación
- Devuelve mensaje de éxito
Limitación de Tasa
Para prevenir abuso, este endpoint tiene limitación de tasa:
- Máximo 3 requests por email por hora
- Máximo 10 requests por IP por hora
Casos de Uso
Email de Verificación No Recibido
function resendVerificationEmail(email) {
return fetch('https://api.callcov.com/api/v1/auth/resend-verification', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email })
});
}
// En tu formulario de login
async function handleLogin(email, password) {
try {
const response = await loginUser(email, password);
} catch (error) {
if (error.message.includes('verifica tu email')) {
// Mostrar botón "Reenviar email de verificación"
const resendButton = document.getElementById('resend-button');
resendButton.style.display = 'block';
resendButton.onclick = async () => {
await resendVerificationEmail(email);
alert('¡Email de verificación enviado! Por favor revisa tu bandeja de entrada.');
};
}
}
}
Token de Verificación Expirado
// Cuando el usuario hace clic en enlace de verificación expirado
const urlParams = new URLSearchParams(window.location.search);
const token = urlParams.get('token');
try {
const response = await fetch('/api/v1/auth/verify-email', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ code: token })
});
if (!response.ok) {
const error = await response.json();
if (error.detail.includes('expirado')) {
// Mostrar formulario de reenvío de verificación
showResendVerificationForm();
}
}
} catch (error) {
console.error(error);
}
Consideraciones de Seguridad
- Tokens anteriores invalidados: Todos los tokens de verificación antiguos se marcan como usados
- Limitación de tasa: Previene bombardeo de emails
- Tokens de un solo uso: Cada nuevo token solo puede usarse una vez
- Tiempo limitado: Los nuevos tokens expiran en 15 minutos
Relacionado
- Registrarse - Crear nueva cuenta
- Verificar Email - Verificar email con token
- Login - Iniciar sesión después de la verificación