¿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 Artisanmake:middleware.
app/Http/Middleware/EnsureTokenIsValid.php.
Escribe la lógica de procesamiento en el método handle.
$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 enwithMiddleware 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étodomiddleware en la definición.
withoutMiddleware.
Alias de middleware
Puedes definir alias cortos para nombres de clase largos, enbootstrap/app.php.
Grupos de middleware
Agrupar varios middleware bajo una clave facilita su aplicación a las rutas. Enbootstrap/app.php usa appendToGroup o prependToGroup.
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étodohandle después del argumento $next.
:.
Ejemplo práctico: middleware de comprobación de autenticación
Ejemplo sencillo que redirige a los usuarios no autenticados.Próximos pasos
Solicitud HTTP
Aprende a recibir datos de la solicitud en el controlador.