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:
- 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:
- Que la Contraseña Actual sea provista.
- Que la Nueva Contraseña cumpla con los requisitos (ej. longitud).
- 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].
Lecciones
🚀 Configuración Inicial y Sistema de Administración 1-6
🛡️ Roles, Permisos y Gestión de Usuarios (Spatie) 7-16
Lección 4. 10 ⚙️ CRUD Completo de Roles | Spatie Roles & Permisos | Ecommerce Laravel 12 FullStack
25 min
Lección 6. 12 🔐 Ajustes en el Login y Seeder de Usuarios | Sistema Ecommerce Laravel 12 FullStack
40 min
Lección 8. 14 🔍 Buscador y Detalle de Usuarios (Acción Show) | Ecommerce Laravel 12 FullStack
32 min
📦 Módulos Esenciales (Categorías y Productos) 17-24
🛒 Tienda Online (Frontend Shop) y Funcionalidades 25-33
Lección 4. 28 🛒 Vista Show Dinámica del Producto | Descripción y Datos Relacionados | Laravel 12
15 min
💳 Carrito, Checkout y Pasarela de Pagos 34-42
Lección 4. 37 💳 PASARELA DE PAGOS PayPal | Integración y Lógica de Checkout en Laravel 12 E-commerce
27 min
Lección 5. 38 ✅ PAGO COMPLETADO y REGISTRO de Pedido | Lógica Final de Venta con PayPal y Laravel 12
11 min
⚙️ Gestión de Órdenes, Perfiles y Características Avanzadas 43-61
Lección 5. 47 🔗 BUSCADOR AVANZADO: Filtrando Tablas Relacionadas con WHERE HAS y Joins en Laravel 12
10 min
📊 Análisis de Datos, Despliegue y Conclusión 62-68
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️