Cambiar contraseña con token de recuperación
POST/auth/recovery_password
Propósito
Cambia la contraseña del usuario utilizando el token de recuperación
previamente generado por POST /auth/recovery.
Objetivo
Completar el flujo de recuperación de contraseña, permitiendo al usuario establecer una nueva contraseña de forma segura.
Casos de uso
- El usuario envía el formulario de cambio de contraseña desde la
página renderizada por
GET /auth/recovery/{token}.
Flujo de cambio de contraseña
flowchart TD
A[Recibir POST /auth/recovery_password] --> B{¿Token y password presentes?}
B -->|No| C[Renderizar página de error]
B -->|Sí| D{¿Existe usuario con ese recovery_token?}
D -->|No| E[Renderizar página de error]
D -->|Sí| F[Hashear nueva contraseña]
F --> G[Limpiar recovery_token]
G --> H[Guardar usuario]
H --> I[Renderizar página de éxito]
Detalles técnicos
- El token se puede enviar por
body.token,params.tokenoquery.token. - Valida que la contraseña no esté vacía ni solo contenga espacios.
- La nueva contraseña se hashea con
User.getPassword(). - Tras el cambio, el
recovery_tokense limpia (se establece a""). - Devuelve HTML (no JSON): renderiza
email_password_oken éxito oemail_password_koen error.
Autenticación
No requiere autenticación (el token de recuperación actúa como credencial).
Request
Responses
- 200
- 400
- 503
Página HTML de resultado: muestra éxito si la contraseña se cambió correctamente, o error si el token es inválido o la contraseña está vacía.
Response Headers
Error al persistir la nueva contraseña en la base de datos
Response Headers
Error interno al renderizar la plantilla HTML