Noticias con temas relacionados a seguridad

Inicio   /   Blog

Image


Laravel es conocido por su enfoque limpio y estructurado del desarrollo web, y uno de sus pilares fundamentales en cuanto a seguridad y control de acceso son los middlewares. En este artículo, aprenderás qué es un middleware, cómo funciona, y sobre todo, cómo crear un middleware personalizado para proteger rutas según tus propias reglas.

Usar middlewares personalizados te permite controlar de forma granular quién accede a qué parte de tu aplicación, ideal para escenarios como verificación de roles, validación de licencias, chequeo de suscripciones activas, entre otros.

¿Qué es un middleware en Laravel?

Un middleware es un filtro que se ejecuta antes (y a veces después) de que una petición llegue a su destino. Laravel incluye middlewares por defecto como auth, verified o throttle, pero tú puedes crear los tuyos propios.

Cuándo usar un middleware personalizado

Algunos casos donde usar un middleware propio es ideal:

  • Restringir acceso a ciertas rutas según el rol del usuario
  • Verificar si el usuario tiene una suscripción activa
  • Bloquear acceso si el perfil del usuario está incompleto
  • Aplicar reglas de negocio como fechas de vencimiento o límites de uso
  • Registrar auditoría de accesos

Cómo crear un middleware personalizado en Laravel

Usa el siguiente comando Artisan para generar un middleware:

php artisan make:middleware VerificarRol

Esto creará un archivo en app/Http/Middleware/VerificarRol.php.

Ejemplo de middleware personalizado

Supongamos que quieres permitir acceso solo a usuarios con el rol admin:


namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class VerificarRol
{
    public function handle($request, Closure $next, $rol)
    {
        if (!Auth::check() || Auth::user()->rol !== $rol) {
            abort(403, 'No tienes permiso para acceder a esta ruta.');
        }

        return $next($request);
    }
}
      

Este middleware verifica que el usuario esté autenticado y tenga el rol requerido.

Registrar el middleware

Debes registrar tu middleware en app/Http/Kernel.php, dentro de $routeMiddleware:


protected $routeMiddleware = [
    // ...
    'rol' => \App\Http\Middleware\VerificarRol::class,
];
      

Usar el middleware en rutas

Ahora puedes usarlo así en tus rutas web o de API:


Route::get('/admin', function () {
    return view('admin.dashboard');
})->middleware('rol:admin');
      

También puedes aplicarlo en controladores con el método middleware():


public function __construct()
{
    $this->middleware('rol:admin');
}
      

Middleware con lógica avanzada

También puedes aplicar lógica más compleja, como verificar múltiples roles o consultar otras tablas:


if (!Auth::check() || !in_array(Auth::user()->rol, ['admin', 'editor'])) {
    return redirect()->route('home')->with('error', 'Acceso denegado.');
}
      

Buenas prácticas

  • No abuses de los middlewares; si tu lógica depende mucho del usuario y sus permisos, evalúa si es mejor usar políticas o gates.
  • No mezcles lógica de negocio compleja en el middleware. Mantenlo limpio y enfocado en verificar condiciones de acceso.
  • Documenta qué hace cada middleware y en qué rutas se aplica.
  • Usa nombres claros y significativos para que su propósito sea evidente.

Conclusión

Los middlewares personalizados son una herramienta poderosa en Laravel para proteger rutas, controlar acceso y mantener tu aplicación segura y organizada. En 2025, con aplicaciones cada vez más dinámicas y orientadas al usuario, tener control granular sobre quién puede hacer qué es más importante que nunca.

Dominar el uso de middlewares personalizados no solo mejora la arquitectura de tu proyecto, sino que también refuerza la seguridad y experiencia del usuario.

¿Quieres implementar seguridad avanzada en tu app Laravel? Contáctame y te ayudo a llevar tu sistema al siguiente nivel.

Tags: Laravel, middleware, rutas, seguridad,