馃П 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