61 🔐 Cambio de Contraseña Segura: Implementando el Formulario de Verificación de Contraseña Actual

Duración: 22 min
Módulo: ⚙️ Gestión de Órdenes, Perfiles y Características Avanzadas 43-61 Lección 19 de 19

Descripción

Lección 61: 🔐 Cambio de Contraseña Segura | Implementación de la Funcionalidad de Actualización de Perfil y Contraseña

Esta lección completa la gestión del perfil del usuario, dotando de funcionalidad a los formularios de actualización de datos personales y, de manera crucial, al proceso de cambio seguro de contraseña.

1. 📝 Funcionalidad de Actualización de Datos de Perfil

Se implementa la lógica en el controlador para que el usuario pueda modificar su nombre y correo electrónico:

  • Ruta y Método 🔗: Se utiliza la ruta update-perfil/{id} con el método PUT para manejar el envío del formulario [00:31].
  • Validación de Datos 🛡️: Se aplica una validación estricta para asegurar que el name y el email sean válidos. Es fundamental el uso de la regla unique:users,email,{id} para permitir al usuario guardar su perfil sin cambiar el email, o para cambiarlo por uno que no exista en otro registro [03:34].
  • Retorno Amigable 🔙: Tras guardar los cambios (nombre y correo), el sistema retorna a la ruta anterior (back()) con un mensaje de éxito, manteniendo al usuario en la vista de perfil [05:01].

2. 🔑 Diseño del Formulario de Cambio de Contraseña

Para optimizar la experiencia y evitar una ruta adicional, el formulario de cambio de contraseña se integra directamente en la vista de perfil:

  • Integración de Formulario 🖼️: La sección de "Cambiar Contraseña" se añade como un segundo formulario dentro de la vista perfil.blade.php, simplificando la navegación para el usuario [08:19].
  • Campos Requeridos:
    • current_password (Contraseña actual) [09:33].
    • password (Nueva contraseña).
    • password_confirmation (Confirmación de la nueva contraseña) [10:02].
  • Ruta Dedicada 🛣️: Se define la nueva ruta update-password para procesar este formulario, con su respectivo permiso (actualizar password) [10:23].

3. 🛡️ Lógica de Cambio Seguro de Contraseña

El proceso de actualización de contraseña es el más crítico e incluye múltiples capas de seguridad:

  • Validación Triple 🚨: El controlador valida tres datos:
    1. Que la Contraseña Actual sea provista.
    2. Que la Nueva Contraseña cumpla con los requisitos (ej. longitud).
    3. Que la nueva contraseña y su Confirmación coincidan (password_confirmation) [17:59].
  • Verificación Hash::check() ✅: Antes de permitir cualquier cambio, el sistema verifica que el current_password ingresado por el usuario coincida con el hash de la contraseña almacenada en la base de datos [18:17].
    • Si la verificación falla, se devuelve un error específico: "La contraseña actual es incorrecta" [18:29].
  • Cifrado y Guardado 💾: Solo si la contraseña actual es correcta, la nueva contraseña se cifra (Hash::make()) y se guarda en la base de datos, garantizando que el usuario mantenga su acceso de forma segura [18:35].
  • Resultado Final 🌟: La funcionalidad se prueba con éxito, demostrando que los usuarios pueden gestionar sus credenciales de manera autónoma y segura [20:25].