🧱 Middlewares: filtros de seguridad
Controla el acceso y la seguridad de tus rutas en Laravel
Los middlewares en Laravel son filtros que se ejecutan antes o después de una petición HTTP. Permiten controlar quién accede a qué rutas, validar condiciones, y proteger tu aplicación de accesos no autorizados.
📘 ¿Qué es un middleware?
Un middleware actúa como una capa intermedia entre la solicitud del usuario y la respuesta del servidor. Laravel ejecuta estos filtros automáticamente en función de las rutas y reglas configuradas.
// Ejemplo de middleware incorporado
Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware('auth');
  
  
    En este ejemplo, la ruta /dashboard solo será accesible si el usuario ha iniciado sesión.
  
⚙️ Crear un middleware personalizado
Para crear tu propio middleware, usa el comando Artisan:
php artisan make:middleware VerificarRol
  
  Esto generará un archivo en app/Http/Middleware/VerificarRol.php.  
    Edita el método handle() para definir tu lógica:
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class VerificarRol
{
    public function handle(Request $request, Closure $next, $rol)
    {
        if (auth()->check() && auth()->user()->rol === $rol) {
            return $next($request);
        }
        abort(403, 'Acceso denegado');
    }
}
  
  Aquí comprobamos si el usuario autenticado tiene el rol correcto; si no, se muestra un error 403.
🔗 Registrar el middleware
    Para que Laravel reconozca tu middleware, agrégalo en el archivo app/Http/Kernel.php dentro del arreglo
    $routeMiddleware:
  
protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'rol' => \App\Http\Middleware\VerificarRol::class,
];
  
  Ahora podrás usarlo directamente en tus rutas:
Route::get('/admin', function () {
    return view('admin.panel');
})->middleware('rol:admin');
  
  🧠 Aplicar middlewares a grupos de rutas
Laravel también permite agrupar rutas bajo un mismo middleware. Ideal para secciones enteras del sistema, como paneles administrativos:
Route::middleware(['auth', 'rol:admin'])->group(function () {
    Route::get('/admin', [AdminController::class, 'index']);
    Route::get('/admin/usuarios', [UsuarioController::class, 'index']);
});
  
  👁️ Ejemplo visual en Blade
Supongamos que un usuario sin permisos intenta acceder al panel administrativo. Podríamos mostrar una vista personalizada de error:
<div class="alert alert-danger mt-5 text-center p-4 rounded">
  <h2>🚫 Acceso denegado</h2>
  <p>No tienes los permisos necesarios para acceder a esta sección.</p>
  <a href="{{ route('home') }}" class="btn btn-primary mt-3">Volver al inicio</a>
</div>
  
  📚 En resumen:
- Los middlewares son filtros de seguridad que controlan el acceso a las rutas.
 - Puedes crear tus propios middlewares con 
php artisan make:middleware. - Regístralos en 
Kernel.phpy aplícalos con->middleware(). - Úsalos para autenticación, roles o restricciones personalizadas.
 
  
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias