Solicitar Restablecimiento de Contraseña
Solicita un enlace de restablecimiento de contraseña que se enviará por correo electrónico. El enlace es válido por 10 minutos.
Información General
Este endpoint permite a los usuarios solicitar un restablecimiento de contraseña cuando la han olvidado.
El sistema genera un token único, lo guarda en Redis por 10 minutos y envía un enlace al email del usuario.
/auth/forgot-passwordGenera un token de restablecimiento y envía un enlace al email del usuario
📋 Parámetros
emailstringrequeridoDirección de correo electrónico del usuario registrado
📤 Respuesta
{
"code": 1002,
"message": "Password reset link sent successfully.",
"data": {
"status": "pending"
}
}Validaciones
Email
- Debe tener formato válido:
usuario@dominio.com - Regex:
/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/ - No puede estar vacío
Respuestas
✅ Enlace Enviado Exitosamente
Código 1002 - Se envió el enlace de restablecimiento al email.
{
"code": 1002,
"message": "Password reset link sent successfully.",
"data": {
"status": "pending"
}
}
Comportamiento del sistema:
- Genera un token UUID único
- Guarda en Redis:
reset:{token}→ email (TTL: 10 minutos) - Envía email con plantilla
reset_passwordque contiene el enlace - Enlace (formato):
https://www.swapbits.site/api/auth/reset-password?token={UUID}
❌ Email Inválido o Faltante
Código 4006 - Datos faltantes o formato inválido.
{
"code": 4006,
"message": "Missing required data."
}
❌ Usuario No Encontrado
Código 4001 - El email no está registrado.
{
"code": 4001,
"message": "User not found."
}
Nota de seguridad: actualmente el backend sí revela si el email existe o no (enumeración).
Detalles Técnicos
Almacenamiento en Redis
- Key:
reset:{token} - Value: email del usuario
- TTL: 10 minutos (600,000 ms)
Email Enviado
- Template:
reset_password - Payload:
{ resetLink }
Ejemplo de enlace:
https://www.swapbits.site/api/auth/reset-password?token=550e8400-e29b-41d4-a716-446655440000
Ejemplos
JavaScript / Fetch
async function requestPasswordReset(email) {
const response = await fetch('https://api.swapbits.co/auth/forgot-password', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email }),
});
const result = await response.json();
if (result.code === 1002) return { success: true };
return { success: false, code: result.code, message: result.message };
}
cURL
curl -X POST 'https://api.swapbits.co/auth/forgot-password' \
-H 'Content-Type: application/json' \
-d '{"email":"usuario@ejemplo.com"}'