Curso Autenticacion

Laravel nos permite generar lo necesario para tener funcionalidad de registro, autenticación y recuperación de contraseña con tan solo ejecutar un comando. En esta lección vamos a instalar un nuevo proyecto de Laravel y daremos un primer vistazo a dicha funcionalidad por defecto que ya viene incluida con el framework.

Repositorio

Ver el código de esta lección en GitHub

Notas

Por Pastor Ramos

Creando y configurando un nuevo proyecto de Laravel

Antes de nada, comenzaremos creando un nuevo proyecto con la versión 5.7 de Laravel al que llamaremos styde-auth. Para lo cual utilizaremos el siguiente comando de Composer:

composer create-project laravel/laravel styde-auth "5.7.*"

Finalizada la descarga, procederemos a establecer una conexión con MySQL solamente para crear la base de datos que denominaremos también styde_auth y que además vamos a utilizar para hacer nuestras pruebas en el navegador en el entorno local:

$ mysql -uroot -p
Enter password: 

MariaDB [(none)]> CREATE DATABASE styde_auth;

Query OK, 1 row affected (0.27 sec)

Ahora, vamos al editor para configurar el entorno en el archivo .env ubicado en la raíz del proyecto. Debemos especificar el nombre del proyecto, el dominio, el nombre de la base de datos, así como el usuario y la contraseña:

APP_NAME="Styde Auth"

APP_URL=http://www.styde-auth.local

DB_DATABASE=styde_auth
DB_USERNAME=root
DB_PASSWORD=

MAIL_DRIVER=log

Laravel Valet usa un dominio de la formawww.nombredelproyecto.localpara los proyectos.

Adicionalmente, usamos el driver de correo en MAIL_DRIVERcomolog. De esta forma cada vez que enviemos un correo dentro del sistema se va a guardar dentro del archivo de log.

Hecho todo esto, podemos recargar sin problemas el proyecto  en el navegador pero todavía sin ningún enlace para efectuar registro alguno.

Generando los módulos de registro y autenticación

Primero, debemos ir al directorio principal del proyecto y ejecutar las migraciones de Laravel. De esta manera creamos las tablas por defecto que incluye el framework.

php artisan migrate

Luego, para instalar el sistema de autenticación de Laravel ejecutamos:

php artisan make:auth

Ahora podemos verificar en el navegador que existen dos enlaces: Uno para realizar los registros de los usuarios Register y otro para iniciar sesión Login.

Recuperación de contraseñas

En el caso que hayamos olvidado la contraseña, todavía disponemos del tradicional enlace Forgot your password? en la pantalla para iniciar sesión. Este enlace nos llevará a otra pantalla donde podremos colocar nuestra cuenta de correo, presionamos el botón Send password reset link y el sistema nos muestra un mensaje de confirmación.

Para completar el proceso, solamente nos hace falta abrir nuestro correo y hacer clic en el enlace para resetear la clave, el cual contiene un token aleatorio para un solo uso. Sin embargo, recordemos que cuando configuramos el entorno colocamos el driver de correo dirigido al archivo log, por lo que en este caso necesitamos consultar el correo desde el editor para comprobarlo.

Podemos ver como en el directorio logs, se ha creado un archivo cuyo nombre tiene la forma laravel-año-mes-dia.log el cual contiene todo el código html que se corresponde al correo que debió haber sido enviado.

Dentro de este archivo html, por supuesto que existe el enlace con el token aleatorio mencionado. Si abrimos este enlace en el navegador, nos dirigirá a una pantalla donde podemos colocar nuestro correo y la nueva contraseña que usaremos para finalizar el proceso.

Si un intruso intentara usar este token aleatorio una segunda vez o cualquier otro token no válido, el sistema rechazará la petición.

Por ahora no te preocupes si los mensajes aparecen en inglés, en la próxima lección aprenderás a cambiar el idioma.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección siguiente Traducción de los módulos de registro, autenticación y recuperación de contraseña en Laravel