Gestión Manual de los Grupos de Middleware Predeterminados
Concepto
En Laravel, puedes gestionar manualmente todos los middlewares dentro de los grupos de middleware predeterminados web
y api
. Esto te permite redefinir completamente estos grupos y personalizarlos según las necesidades específicas de tu aplicación.
Dónde Escribir el Código
Para gestionar manualmente los grupos de middleware, debes modificar el archivo bootstrap/app.php
de tu aplicación. Este archivo es donde puedes configurar y registrar los grupos de middleware globales y personalizados.
Ejemplo de Código 1: Redefinir el Grupo de Middleware web
->withMiddleware(function (Middleware $middleware) {
$middleware->group('web', [
\Illuminate\Cookie\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
]);
});
Explicación del Código 1
En este ejemplo, estamos redefiniendo el grupo de middleware web
con sus middlewares predeterminados. A continuación, se explica cada parte del código:
- $middleware->group(‘web’, [ … ]);: Este método redefine el grupo de middleware
web
con una lista de middlewares. Puedes personalizar esta lista añadiendo, eliminando o comentando middlewares según las necesidades de tu aplicación. - \Illuminate\Cookie\Middleware\EncryptCookies::class: Este middleware se encarga de encriptar las cookies de la aplicación para proteger la información del usuario.
- \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class: Este middleware añade las cookies en cola a la respuesta HTTP.
- \Illuminate\Session\Middleware\StartSession::class: Este middleware inicia la sesión del usuario, permitiendo el almacenamiento de datos de sesión.
- \Illuminate\View\Middleware\ShareErrorsFromSession::class: Este middleware comparte los errores de validación de la sesión con las vistas.
- \Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class: Este middleware valida el token CSRF para proteger la aplicación contra ataques de falsificación de solicitudes entre sitios.
- \Illuminate\Routing\Middleware\SubstituteBindings::class: Este middleware sustituye los parámetros de las rutas con sus modelos correspondientes.
- // \Illuminate\Session\Middleware\AuthenticateSession::class: Este middleware está comentado, lo que significa que no se ejecutará. Puedes descomentarlo si necesitas autenticar la sesión del usuario.
Ejemplo de Código 2: Redefinir el Grupo de Middleware api
->withMiddleware(function (Middleware $middleware) {
$middleware->group('api', [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
// 'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
]);
});
Explicación del Código 2
En este segundo ejemplo, estamos redefiniendo el grupo de middleware api
con sus middlewares predeterminados. A continuación, se explica cada parte del código:
- $middleware->group(‘api’, [ … ]);: Este método redefine el grupo de middleware
api
con una lista de middlewares. Puedes personalizar esta lista añadiendo, eliminando o comentando middlewares según las necesidades de tu aplicación. - // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class: Este middleware está comentado, lo que significa que no se ejecutará. Puedes descomentarlo si necesitas asegurar que las solicitudes del frontend sean con estado.
- // ‘throttle:api’: Este middleware está comentado, lo que significa que no se ejecutará. Puedes descomentarlo si necesitas limitar la tasa de solicitudes a la API.
- \Illuminate\Routing\Middleware\SubstituteBindings::class: Este middleware sustituye los parámetros de las rutas con sus modelos correspondientes, asegurando que las rutas API funcionen correctamente con los modelos de Eloquent.
Conclusión
Gestionar manualmente los grupos de middleware predeterminados en Laravel te proporciona un control total sobre la lógica de control de acceso y otras operaciones comunes en tus rutas web y API. Al redefinir estos grupos, puedes personalizar completamente su comportamiento para satisfacer las necesidades específicas de tu aplicación. Es esencial entender cómo configurar y modificar estos grupos para mantener la integridad y el rendimiento de tu aplicación.
Enlaces
Para más información, visita la página oficial de Laravel: Laravel Middleware Documentation
También puedes ver Laravel en español en: Conozca Laravel
Etiqueta:Middleware