Cargando



Laravel 5.1 Middleware

En este tutorial aprenderás a crear tus propios middleware en Laravel 5.1, mejora la seguridad de tus proyectos.


oct 03 2015 06:03
Intermedio
oct 04 2015 23:52

laravel-5.jpg



En Laravel 5 tenemos los middlewares, un nuevo componente similar a los filtros, aunque debe quedar claro qué no los reemplazan, ni son lo mismo.

Los filtros siguen conviviendo con los middlewares en Laravel 5, y, aunque en un futuro creo que estos pueden ser eliminados, de momento no han lo han hecho, así que puedes escoger entre seguir utilizando los filtros de la forma en la que lo hacías o utilizar los middlewares, que considero más intuitivos.

Laravel incluye un middleware que verifica si el usuario de la aplicación es autenticado, este viene por defecto, y lo puedes activar usando las migraciones que trae Laravel por defectos e intentando acceder a /home.

La ventaja de este mecanismo es un mejor control de las peticiones que recibe nuestro sitio, es decir, que estaríamos agregando capas adicionales a la lógica de nuestra aplicación de forma ordenada y correcta, para los distintos modelos de negocio, y sin necesidad de agregar nuevos componentes externos.

Laravel tiene un middleware llamado Authenticate y es alojado en App\Http\Middleware, aquí el ejemplo del middleware de autenticación.


imagen1.png



El ámbito más común de un middleware es el de auth(autenticación) de niveles. Muy útil en sitios en donde es necesario que las sesiones posean ciertos privilegios para poder ver el contenido de determinadas páginas.

¿Cómo crear un middleware?


Lo primero que debemos hacer es crear un proyecto de Laravel 5.1. Puedes usar composer para lograrlo.
composer install create-project laravel/laravel miproyecto
Posteriormente tecleamos en la terminal/consola:
php artisan make:middlware TipoMiddleware
Si revisamos dentro de App/Http/Middleware observamos que se ha creado un archivo TipoMiddleware.php igual a este:


imagen1.png



Ahora hay que darle funcionalidad a este middleware, para ello, creamos una nueva ruta en routes.php:
Route::get('panel',['middleware' => 'tipo', function(){
    return '<h1> Probando el Middleware para Solvetic.com </h1>';
}]);
Si intentamos ingresar a la ruta creada en el paso anterior /panel, se mostrará un error indicándonos que la clase “tipo” no existe. No te preocupes, esto ocurre porque no se ha agregado este middleware a nuestro registro.


imagen1.png



Debemos ir al archivo Kernel.php ubicado en App/Http, y colocarlos en los middleware específicos por ruta. Ya que si se colocan globales, por cada petición que se hace a la aplicación sin importar la ruta a la que se accede, se estaría ejecutando, y normalmente esto sería un error. Entonces lo declaramos en el array $routeMiddleware.


imagen1.png



Si probamos ahora, FUNCIONA, ya en este punto deberíamos poder acceder a la ruta /panel sin problema alguno y sin que nos de errores, pero vamos, esto no tiene ninguna funcionalidad todavía, a #programar.
Vamos a probar la verificación si la variable tipo es igual a Administrador, se mostrará la página; de lo contrarío que se vaya al inicio del sitio.


imagen1.png



Un plus incorporado en Laravel 5.1 es la posibilidad de pasar parámetros desde los routes:


imagen1.png



Y con esto finalizamos, ya sabes hacer tus propios middleware, comenta y comparte, entre todos aprenderemos muchas más cosas. Saludos.

¿Te ayudó este Tutorial?


2 Comentarios


Pablo Santos
oct 05 2015 18:09

Lo tengo a buen recaudo la v 5.1


Jesús Machado
oct 05 2015 18:41

Excelente versión, ya que es la STL, tiene muy buenas prestaciones, comparada con la v 4

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X