RECUPERACIÓN DE CONTRASEÑA POR ENLACE SEGURO – CPANEL

CORRECCIÓN IMPORTANTE
La versión anterior mostraba “Error del servidor” al generar el enlace porque faltaban en UsuarioModel los métodos de creación/verificación/uso del token. Esta versión ya los incluye.

1. Subir el proyecto completo y reemplazar la versión anterior.
2. Importar en la base de datos el archivo:
   app/sql/hrpucal1_db_mesapartes-CON-RECUPERACION.sql
   o ejecutar app/sql/recuperacion_contrasena.sql si la base ya existe.
3. La tabla requerida es recuperacion_contrasena.
4. Flujo:
   - Usuario ingresa DNI y correo.
   - Se verifica el usuario.
   - Se genera un token aleatorio de 64 caracteres hexadecimales.
   - Solo se guarda SHA-256 del token.
   - El token vence en 30 minutos y es de un solo uso.
   - Se envía al correo un botón CAMBIAR MI CONTRASEÑA.
   - El usuario crea su propia contraseña.
   - La contraseña se guarda con password_hash(PASSWORD_BCRYPT).
5. El navegador recibe la confirmación de generación del enlace antes del proceso SMTP. El correo se intenta enviar mediante una segunda petición para evitar que la pantalla quede cargando.
6. Configurar SMTP en .env con una cuenta real del dominio para que el correo pueda salir desde cPanel.
7. Después de reemplazar los archivos, realizar Ctrl+F5 en el navegador.
8. Para comprobar que se cargó la versión nueva, en la consola del navegador debe aparecer RECUPERACION_VERSION = 20260908-FIX2 si se desea verificar manualmente.
