jairogarcíarincón

Cambiar contraseña con envío de email


5.10K

Introducción



Un uso bastante frecuente en los sitios web con opciones de registro y acceso de usuarios es la posibilidad de resetear la contraseña en caso de que el usuario la olvide.

Toda la información de cómo realizar esta configuración en Laravel se encuentra en https://laravel.com/docs/8.x/passwords.

El proceso suele ser el siguiente:

  1. El usuario, mediante un botón, solicita la opción de Cambiar Contraseña

  2. Este botón le llevará a una vista (auth/email) con un formulario para introducir el email y un botón de submit.

  3. Tras ese submit, el usuario recibirá en su email y enlace único (con un token asociado a su email).

  4. Al pinchar en dicho enlace, el usuario accederá a un nuevo formulario (auth/clave) que le permitirá rellenar de nuevo la contraseña y solicitar el cambio.


Todas estas acciones las gestionará nuestro AuthController, si bien para que todo funcione correctamente deberemos añadir las rutas y vistas necesarias y la configuración de la cuenta de envío de emails.


Vista para introducir el email (auth/email.blade.php)





cambiar constraseña



Configuración de email



Esta configuración la podríamos realizar directamente en nuestro archivo de entorno .env, añadiendo los parámetros de nuestra cuenta de email de la siguiente manera:



NOTA: En el ejemplo anterior para una cuenta de Gmail, es necesario además activar en tu cuenta de Google la opción de envío de emails desde aplicaciones de terceros, para ello, accede a Gestionar tu cuenta de Google > Seguridad > Acceso a aplicaciones poco seguras y activa dicha opción.



Archivo de rutas (app/routes/web.php)



Debemos modificar el archivo routes/web.php (antes de la ruta por defecto) para que conozca las rutas necesarias:




Vista para introducir la nueva contraseña (auth/clave.php)





reset



Vista de la plantilla para el email



Crea la carpeta y el archivo /resources/views/email/email.blade.php con el siguiente código:




Acciones de AuthController



Y para finalizar, sustituye el AuthController por este otro, que además incluye comentarios apra cada una de las acciones:




Ejercicios propuestos

  1. Modifica la vista que genera el email de envío para que extienda a un nuevo layout en la ruta views/layouts/email.blade.php, añadiéndole algunos estilos personalizados.

  2. Crea una página de contacto en el front-end que incluya un formulario (Nombre, email, asunto, acepto política de privacidad) que se rellena y se envía por email al usuario y al administrador de la página.



Publicado el 21 de Mayo de 2022

bloggestor de contenidoslaravelphpcssjquery