Protección de Rutas o Vistas mediante Contraseña en Laravel 6.2

4 minuto(s)

Demo Github

Hasta la fecha de este artículo ya se encuentra disponible la versión de Laravel 6 que trae nuevas características que hacen la vida de los Desarrolladores más simple, esto es bueno ya que en la industria actual estas características nos ayudan a concluir un proyecto sea personal o par aun cliente de manera rápida, los clientes no perdonan y quieren que su proyecto se termine lo más antes posible, en este Post te voy a compartir una funcionalidad interesante de Laravel 6

Para este Post exactamente estoy usando la versión de Laravel 6.2 en donde ha incluido una función para proteger una vista por medio de contraseña, esta impide que un usuario acceda a dicha vista sin autorización. Si estas empezando a trabajar con Laravel 6, te recomiendo leer el artículo Las Novedades que trae Laravel 6 y así estés familiarizado con esta versión de Laravel.

Despliegue de Auth Scaffolding de Laravel

Para hacer la protección por contraseña tengo que instalar el Sistema de Login y Registro nativo de Laravel o Auth Scaffolding, yo lo instalaré con Bootstrap ejecutando los siguientes comandos en mi Consola de comandos


Paralelamente cuando ejecute los comandos anteriores, Laravel me ha creado unos archivos de migraciones que crean la tabla users en la Base de Datos,  para correr o ejecutar estas migraciones ejecuto el siguiente comando


Bien con esto ya tengo instalado el Auth Scaffolding de Laravel, me aparecerá en la parte superior derecha los botones para hacer Login o Crear una nueva cuenta (Register)

Procedo a crear una nueva cuenta e inicio sesión en el Sistema, con esto ya tengo una Autenticación activa en el Sistema

Protección de una Ruta o Vista

Supongamos que tengo una Página en donde muestro una imagen que menciona un artículo sobre Las Novedades que trae Laravel 6, a esta Página quiero darle restricción, es decir el usuario que no confirme su contraseña no podrá acceder a esta Página y por ende no podrá ver la imagen.

Para acceder a esta página he creado una ruta en mi archivo web.php que apunta a mi controlador PostresController y al método index


El archivo web.php se encuentra en routes > web.php

Es una ruta sencilla que llama a la vista articulo dentro de mi controlador PostresController , la vista articulo contiene la imagen que menciona un artículo sobre Las Novedades que trae Laravel 6,


Para que el usuario deba confirmar su contraseña antes de poder ver la Página agrego al final de la ruta el método middleware apuntando a la vista password.confirm


Entonces cuando el usuario intenta acceder ala ruta https://localhost:8000/articulo, Laravel lo redirecciona a la ruta https://localhost:8000/password/confirm en donde debe escribir su contraseña para continuar

El tiempo para que Laravel vuelva a pedir la contraseña es de 3 horas, si quieres ampliar el tiempo ve al archivo auth.php que se encuentra en config > auth.php y busca la línea que dice password_timeout y asigna el nuevo tiempo en milisegundos


Como puedes haberte dado cuenta, de esta manera protegerás tus aplicaciones Web creadas con Laravel 6.2, Google, GitHub y otras empresas suelen usar la confirmación de contraseña en sus aplicaciones.

Nota (s)

  • En futuras versiones el método middleware puede ser modificado, eliminado o continuar, esto no depende de nosotros si no de los Desarrolladores que dan soporte a Laravel.

 

Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.