Change user password
POST/company/users/changePass
Permite al usuario autenticado cambiar su propia contraseña.
Objective
Facilitar el cambio de contraseña de forma segura por el propio usuario, manteniendo el historial de contraseñas para evitar repeticiones.
Use Cases
- Usuario quiere cambiar su contraseña periódicamente
- Usuario olvidó su contraseña y usó recuperación (ahora quiere una personal)
- Política de seguridad requiere cambio regular
Authentication
- Requiere JWT válido (middleware m.isLoged)
- Usuario debe estar autenticado
Validations
- La contraseña actual debe ser válida (model.isValidPassword)
- La nueva contraseña debe coincidir con la confirmación
- La nueva contraseña debe cumplir requisitos de seguridad:
- Mínimo 8 caracteres
- Al menos 1 mayúscula
- Al menos 1 número
- No puede ser igual a las últimas 5 contraseñas usadas
- Crea notificación al cambiar contraseña
Process
- Usuario envía contraseña actual y nueva contraseña
- Sistema verifica que la contraseña actual sea correcta
- Sistema verifica que new_pass y confirm_pass coincidan
- Si es válida, actualiza a la nueva contraseña hasheada
- Limpia recovery_token
- Crea notificación de cambio de contraseña
- Actualiza token con m.setNewToken()
Error Messages
- INVALID_PASSWORD (403): Contraseña actual incorrecta
- PASSWORD_NOT_MATCH (405): new_pass y confirm_pass no coinciden
Request
Responses
- 200
- 400
- 401
- 403
- 405
Contraseña cambiada exitosamente
Solicitud inválida. Posibles causas:
- Campos faltantes en el request
- Error al guardar
No autorizado. Posibles causas:
- Token JWT inválido o expirado
- Usuario no tiene permisos
Contraseña actual incorrecta
La nueva contraseña y la confirmación no coinciden