0Pricing
PHP Academy · Lección

Protección de rutas con middleware

Utilice los middleware auth y guest para proteger rutas y redirigir usuarios.

Protección de rutas con middleware es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué es el middleware?

El middleware es código que se ejecuta antes o después de que una solicitud HTTP llegue al controlador. Se utiliza para autenticación, registro, CORS, limitación de solicitudes, etc.

Middleware de autenticación integrado

El middleware auth redirige a los usuarios no autenticados a la página de inicio de sesión (o devuelve 401 en las solicitudes de API).

<?php
Route::get("/dashboard", [DashboardController::class, "index"])
    ->middleware("auth");

Aplicar middleware a grupos

Proteja un grupo completo de rutas de una sola vez.

<?php
Route::middleware(["auth", "verified"])->group(function () {
    Route::get("/dashboard", [DashboardController::class, "index"]);
    Route::get("/profile",   [ProfileController::class, "show"]);
});

Middleware guest

El middleware guest redirige a los usuarios autenticados fuera de las páginas de inicio de sesión y registro.

<?php
Route::middleware("guest")->group(function () {
    Route::get("/login",    [LoginController::class, "create"]);
    Route::get("/register", [RegisterController::class, "create"]);
});

Crear middleware personalizado

Genérelo con Artisan e implemente el método handle().

$ php artisan make:middleware EnsureSubscribed

Lógica del middleware personalizado

Devuelva la siguiente solicitud para continuar o devuelva una respuesta para cancelar el procesamiento.

<?php
public function handle(Request $request, Closure $next): Response
{
    if (!$request->user()?->isSubscribed()) {
        return redirect("/subscribe");
    }
    return $next($request);
}

Registrar middleware

Registre los alias del middleware en app/Http/Kernel.php (Laravel 10) o bootstrap/app.php (Laravel 11+).

<?php
// Laravel 11+ bootstrap/app.php:
->withMiddleware(function (Middleware $m) {
    $m->alias(["subscribed" => EnsureSubscribed::class]);
})

Parámetros del middleware

Pase parámetros al middleware utilizando dos puntos.

<?php
Route::middleware("role:admin")->group(function () {
    // ...
});
// In middleware handle():
public function handle(Request $request, Closure $next, string $role): Response

Middleware posterior

El código posterior a $next($request) se ejecuta después de generar la respuesta; resulta útil para registrar información y modificar la respuesta.

<?php
public function handle(Request $request, Closure $next): Response
{
    $response = $next($request); // controller runs here
    $response->headers->set("X-App", "Laravel");
    return $response;
}

Prioridad del middleware

El orden en que se ejecuta el middleware es importante. El middleware global (como TrimStrings) se ejecuta antes que el middleware de rutas.

Middleware de limitación

Laravel incluye limitación de solicitudes mediante el middleware throttle.

<?php
Route::middleware("throttle:60,1")->group(function () {
    // 60 requests per 1 minute
});

Resumen

El middleware filtra las solicitudes HTTP. Aplique auth para proteger rutas, cree middleware personalizado para las reglas de negocio y agrupe rutas para compartir middleware de forma ordenada.

Comprobación rápida

¿Qué hace el middleware auth con los usuarios no autenticados?

Preguntas frecuentes

¿La lección «Protección de rutas con middleware» es gratis?

Sí — el texto completo de «Protección de rutas con middleware» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Protección de rutas con middleware»?

Utilice los middleware auth y guest para proteger rutas y redirigir usuarios. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Protección de rutas con middleware»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Autenticación con Laravel Breeze
  2. Protección de rutas con middleware
  3. Gates: comprobaciones sencillas de autorización
  4. Policies: autorización basada en modelos
← Volver a PHP Academy