Un middleware nos permite restringir módulos a usuarios no permitidos y en esta guía te enseñaremos a cómo puedes dar acceso al panel administrativo, solamente a los que tenga el rol de administrador y no a los que solamente inicien sesión sin tener ningún rol.
Créalos y utilízalos de la manera más fácil y practica posible, siguiendo los pasos siguientes:
php artisan make:migration add_role_to_users
Una vez creada la migración la abrimos y agregamos el campo de la tabla como se muestra acontinuación;
public function up(): void { Schema::table('users', function (Blueprint $table) { $table->string('role') ->after('email') ->default('admin'); }); } * Reverse the migrations. */ public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('role'); }); } /**
Corremos la migración con:
Php artisan migrate
php artisan make:middleware administrador
Necesitamos editar el middleware, para esto nos vamos a la ruta "App\hhtp\middleware\" en esta carpeta aparecerán todos los que están creados y solamente abrimos el "administrador" que hicimos en el paso anterior, en la función "handle" vamos a añadir una condición, la cual dice que solamente tendrá acceso al panel administrativo si el usuario autenticado tiene como valor 1 en el campo role, así que añadimos el siguiente código:
public function handle(Request $request, Closure $next): Response { if (auth()->user() && (auth()->user()->role == "admin")) { return $next($request); } return redirect('/'); }
Lo que haremos en esta línea es agregar el middleware que creamos, añadiendo la siguiente línea, en el área de "protected middlewareAliases".
'admin' => \App\Http\Middleware\administrador::class,
Primero que nada nos vamos a las rutas web "routes/web" Para poder aplicar esta restricción, debemos decirle a laravel en que rutas se requiere, entonces como primero paso sería importarla.
use App\Http\Middleware\administrador;
Route::middleware([
'auth:sanctum',
config('jetstream.auth_session'),
'verified',
])->group(function () {
Route::get('/dashboard', function () {
return view('dashboard');
})->name('dashboard')->middleware(administrador::class);;
});
Etiquetas:
Gusto por las motos Harley Davidson, el rock n roll y la informática, creador de este blog para difusión del conocimiento libre, interesado en el mundo open source.
Como crear carrito de compras por usuario Laravel
Como instalar el paquete intervention/image en Php Laravel
Como subir un proyecto laravel a servidor compartido Cpanel
Agregar reglas a usuario en Fortigate firewall
Como instalar Admin Lte en un proyecto de Laravel con Jetstream
Configura Https SSL Gratis con Cloudflare