Cómo proteger tus rutas con middleware personalizado en Laravel

Inicio   /   Cómo proteger tus rutas con middleware personalizado en Laravel

Blog Cómo proteger tus rutas con middleware personalizado en Laravel


Cómo proteger tus rutas con middleware personalizado en Laravel


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,

Ultimas Noticias


12 Herramientas de email marketing para lanzar tus campañas

Como especialistas en marketing, tenemos


11 consejos para construir una presencia en las redes sociales

Entonces, está interesado en construir


Optimización de Imágenes para la Web: Carga Rápida y Mejor Experiencia de Usuario

La optimización de imágenes es una par


Los 10 principales beneficios de las opiniones de los clientes en un ecommerce

¿Las opiniones de los clientes forman p


¿Qué es el CPM?

CPM es un acrónimo de costo por mil, es


10 consejos para mejorar tu web

Puede que, sin saberlo, estés perdi