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.local
para los proyectos.
Adicionalmente, usamos el driver de correo en MAIL_DRIVER
comolog
. 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.
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.