66 Seguridad Total en Laravel 12: Protegiendo Rutas con Middleware Spatie y Permisos Dinámicos 🛡️🔐
Duración: 14 min¡Contenido Exclusivo!
Adquiere este curso para tener acceso inmediato a esta y a **todas las lecciones Premium**.
Inscribirse Ahora por $10.00 Acceso instantáneo de por vida y código fuente incluido.Descripción
🛡️ Lección 66: Seguridad Total y Control de Permisos con Spatie en Laravel 12
En esta sesión de Benji V2, abordamos uno de los pilares de cualquier aplicación empresarial: la Seguridad. Aprendemos a restringir el acceso a las rutas del sistema para que cada usuario (Administrador, Cliente, Cobrador) solo pueda realizar las acciones que le corresponden, evitando que un cliente pueda, por ejemplo, eliminar préstamos o ver configuraciones sensibles.
🚨 El Problema: Acceso Total No Autorizado
Demostramos cómo, sin un control de permisos, un usuario con rol de Cliente podía navegar por todo el sistema, crear préstamos, editar categorías y ver información de otros usuarios, lo cual representa una vulnerabilidad crítica [02:12].
🛠️ Implementación de Permisos Dinámicos
Utilizamos el paquete Laravel Permission de Spatie para definir reglas estrictas en el archivo de rutas (web.php):
- 🔐 Uso de Middleware can: En lugar de solo proteger las rutas con auth, añadimos el middleware can seguido de un nombre de permiso descriptivo [06:36].
- ✍️ Nomenclatura Humana: Optamos por nombres de permisos legibles para usuarios no técnicos, como ver listado de clientes, guardar préstamo o enviar notificaciones por WhatsApp, en lugar de usar solo nombres técnicos de rutas [07:58].
- 🛰️ Cobertura Total: Aplicamos estas restricciones a todos los módulos: Ajustes, Roles, Usuarios, Clientes, Categorías, Préstamos, Pagos y Notificaciones [10:41].
🏗️ Estructura de la Base de Datos
Analizamos la tabla permissions creada por Spatie:
- 📋 Tabla Vacía: Inicialmente, la tabla de permisos está vacía. En el código, ya hemos "invocado" los permisos en las rutas, pero ahora el sistema bloquea todo porque esos permisos aún no han sido registrados ni asignados a ningún rol en la base de datos [03:43].
✅ Resultado de la Lección
Al finalizar, el sistema ha entrado en un estado de "Bloqueo de Seguridad". Tanto el administrador como los clientes reciben un error 403 (Acción no autorizada) al intentar acceder a cualquier módulo [13:28]. Este es el paso necesario para, en la siguiente lección, habilitar selectivamente qué puede hacer cada perfil.
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️