jairogarcíarincón
06/09/2023
Contenidos
- Objetivos
- Instalación
- Configuración
- Base de datos
- Plug-ins
- Enrutando la home
- Layout y rutas del front-end
- Noticias en el front-end
- Resto de vistas del front-end
- Auth
- Layout del back-end
- Vistas y acciones de Auth
- Usuarios en el back-end
- Noticias en el back-end
- Helpers
- Paginación de noticias
- API de noticias
- Cambiar contraseña con envío de email
- Conclusiones
- Práctica: CMS con Laravel
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:
- El usuario, mediante un botón, solicita la opción de Cambiar Contraseña
- Este botón le llevará a una vista (auth/email) con un formulario para introducir el email y un botón de submit.
- Tras ese submit, el usuario recibirá en su email y enlace único (con un token asociado a su email).
- 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)
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 modificar la seguridad de tu cuenta de Google para poder enviar de emails desde aplicaciones de terceros. Para ello, accede a Gestionar tu cuenta de Google > Seguridad > Iniciar sesión en Google > Contraseñas de aplicaciones y crea una contraseña personalizada.
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)
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
- 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.
- 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 Noviembre de 2024
bloggestor de contenidoslaravelphpcssjquery