Skip to main content

¿Qué es un middleware?

Un middleware es un mecanismo para inspeccionar y filtrar las solicitudes HTTP que llegan a la aplicación. Permite intercalar lógica antes o después de que la solicitud llegue al controlador. Por ejemplo, Laravel incluye un middleware de autenticación. Si el usuario no está autenticado, redirige a la pantalla de login; si lo está, deja pasar la solicitud sin más. Además de la autenticación, puedes crear middleware para tareas como logging, protección CSRF o limitación de tasa. Para los detalles de la protección CSRF en Laravel 13, consulta Protección CSRF.
El middleware definido por el usuario se coloca habitualmente en el directorio app/Http/Middleware.

Middleware integrados

Laravel proporciona por defecto dos grupos de middleware: web y api. routes/web.php recibe automáticamente el grupo web y routes/api.php el grupo api. Los middleware más utilizados tienen alias, que permiten referirse a ellos con un nombre corto.

Crear un middleware

Crea un middleware con el comando Artisan make:middleware.
Se genera app/Http/Middleware/EnsureTokenIsValid.php. Escribe la lógica de procesamiento en el método handle.
Al llamar a $next($request), la solicitud pasa al siguiente paso. Si no se cumple la condición, detén la solicitud devolviendo un redirect o una respuesta.

Procesamiento antes/después

El middleware puede ejecutar lógica antes o después de la solicitud.

Registrar middleware

Middleware global

Para ejecutarlo en todas las solicitudes, añádelo a la pila global en withMiddleware de bootstrap/app.php.
append lo añade al final. Para añadirlo al principio usa prepend.

Aplicar a rutas

Para aplicarlo solo a ciertas rutas, usa el método middleware en la definición.
Para aplicar varios middleware, pásalos como array.
Para excluir un middleware en una ruta concreta, usa withoutMiddleware.

Alias de middleware

Puedes definir alias cortos para nombres de clase largos, en bootstrap/app.php.
Aplícalo a la ruta con el alias.

Grupos de middleware

Agrupar varios middleware bajo una clave facilita su aplicación a las rutas. En bootstrap/app.php usa appendToGroup o prependToGroup.
Los grupos se aplican como un middleware normal.
Para añadir middleware a los grupos existentes web o api hay métodos específicos.

Parámetros de middleware

Los middleware pueden recibir parámetros. Añade los parámetros al método handle después del argumento $next.
En la ruta, separa el nombre del middleware y sus parámetros con :.
Con varios parámetros, sepáralos con comas.

Ejemplo práctico: middleware de comprobación de autenticación

Ejemplo sencillo que redirige a los usuarios no autenticados.
Aplícalo a la ruta.
Laravel incluye el middleware auth para autenticación. Antes de crear el tuyo, comprueba si un middleware existente cumple tus requisitos.

Próximos pasos

Solicitud HTTP

Aprende a recibir datos de la solicitud en el controlador.
Última modificación el 13 de julio de 2026