📌 Cómo usar Middleware en Laravel para controlar accesos

Los middleware en Laravel son una de las herramientas más poderosas para gestionar el acceso y la seguridad de nuestras aplicaciones. Nos permiten interceptar solicitudes HTTP y ejecutar lógica antes de que lleguen a los controladores. En este artículo, veremos qué son, cómo funcionan y cómo puedes aplicarlos en tus proyectos.
🚀 ¿Qué es un Middleware en Laravel?
Un middleware actúa como un filtro que revisa las solicitudes antes de que lleguen al controlador. Puedes usar middleware para:
✔️ Autenticar usuarios
✔️ Registrar logs de actividad
✔️ Cifrar y descifrar datos
✔️ Aplicar restricciones de acceso según roles
Laravel ya trae varios middleware por defecto, como auth
, que protege rutas para usuarios autenticados.
🛠️ Creando un Middleware en Laravel
Para crear un nuevo middleware, usamos Artisan:
php artisan make:middleware CheckUserRole
Esto generará un archivo en app/Http/Middleware/CheckUserRole.php
, donde podemos definir la lógica del middleware:
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CheckUserRole
{
public function handle(Request $request, Closure $next)
{
if (!$request->user() || !$request->user()->hasRole('admin')) {
return redirect('/home'); // Redirigir si no es admin
}
return $next($request);
}
}
🔗 Registrando el Middleware
Para que Laravel lo reconozca, lo agregamos en app/Http/Kernel.php
:
protected $routeMiddleware = [
'checkAdmin' => \App\Http\Middleware\CheckUserRole::class,
];
Luego, podemos aplicarlo en nuestras rutas:
Route::get('/admin', function () {
return view('admin.dashboard');
})->middleware('checkAdmin');
⚡ Consejo de JadrDev
Usa middleware para mantener tu código limpio y seguro. No sobrecargues los controladores con lógica de validación y acceso. Mantén cada parte de tu aplicación enfocada en su propósito.
📌 ¿Qué otros casos de uso le das a los middleware en Laravel? ¡Déjamelo en los comentarios!