Middleware para roles en Laravel

arrow_back Blog

En esta entrada vamos a ver lo sencillo que es crear un Middleware para roles en Laravel, la idea es proteger las rutas de nuestra aplicación ofreciendo acceso sólo a aquellos usuarios que realmente lo tengan.

En nuestro caso tendremos los roles Root, Admin y Editor. El usuario Root tendrá acceso a todo, el Admin y el Editor sólo a aquellas rutas en las que lo explicitemos. ¿Por qué escribir un Middleware para roles en lugar de utilizar un paquete existente? No siempre desearemos instalar dependencias externas para todo, existen muchas ocasiones en las que las necesidades de nuestros proyectos son mínimas y desarrollar nuestros propios sistemas nos ahorrará tener que ejecutar cientos de líneas de código en cada petición. Rutas con roles para nuestro proyecto Antes de desarrollar nuestro Middleware veamos el aspecto que tendrán  nuestras rutas, aquí es donde utilizaremos nuestro Middleware para proteger las rutas que necesitemos.

En el anterior ejemplo podemos ver claramente de qué trata nuestro Middleware, haciendo uso de role:... podemos definir todos los roles que deseemos separados por coma, de esta forma, todos los usuarios con esos roles podrán acceder a los recursos que definamos en las rutas. Middleware para roles en Laravel Ahora que ya sabemos cómo utilizar nuestro Middleware, veamos su código, para ello primero vamos a crearlo.

Ahora vamos a modificar su código por el siguiente:

Todo el código anterior está explicado, así que es muy sencillo entender su lógica. Lo importante es ver cómo recogemos los roles desde las rutas de nuestra aplicación.

Ahora, para que esto funcione, debemos registrar nuestro Middleware en el Kernel Http, así que abre el archivo app/Http/Kernel.php y añade el siguiente registro al array $routeMiddleware.

Para que el ejemplo sea 100% funcional simplemente necesitas añadir los métodos isRoot/isAdmin al modelo User retornando true/false, eso te lo dejo a ti.

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2024 © Todos los derechos reservados.

Contacto