Correo de confirmación Laravel API

Hoy aprenderemos a registrar y confirmar el correo de nuestros usuarios en Laravel.

Antes de empezar debemos tener una aplicación laravel creada y una aplicación angular. El flujo común de correo de confirmación es el siguiente:

Dado el flujo anterior, ahora realizaremos la secuencia:

Para el ejemplo siguiente usaremos Google como nuestro servidor de correos.

Configurando Google

Vamos a nuestra cuenta de Google y a configuracion, nos aseguramos que en Seguridad tengamos la verificación de 2 pasos activada y, además agregaremos una contraseña para nuestra aplicación (ojo que se utilizará para más adelante).

Crea una contraseña para aplicaciones

Buscamos app en nuestra cuenta de google y seleccionamos Accede con contraseñas de aplicaciones.

Y creamos una contraseña que luego utilizaremos en nuestro archivo .env

Habilitar POP/IMAP

El siguiente paso es decirle a Google que queremos habilitar las funciones IMAP y POP de nuestro correo, para ello vamos a nuestro correo GMAIL y en configuración:

Configurando Laravel

Creamos nuestra aplicación Laravel la cual nombraremos verification-email

Para verificar la correcta instalación corremos la siguiente instrucción dentro de la carpeta del proyecto (verification-email):

la aplicación Laravel debería levantar sin problemas

Hecho lo anterior configuramos nuestro archivo de propiedades .env que se encuentra en la raíz de nuestro proyecto Laravel.

Conectamos nuestra aplicación a nuestra base de mysql. En este caso supondremos que ya tenemos instalada una base Mysql y ponemos nuestras credenciales de Bases de Datos.

Luego configuramos el email, no olvidar usar la password que nos da google para nuestra aplicación

Por último ejecutamos el siguiente comando para que laravel cree las tablas necesarias en nuestra base de datos, para correr la aplicación, a nosotros nos interesa la tabla user.

Al revisar nuestra base enocntraremos que sean creado algunas tablas. La tabla user debe tener un campo email_verified_at, el cual nos indicará si un usuario registrado ha validado su email.

No olvidar ejecutar php artisan config:cache para que Laravel tome los cambios de nuestro archivo.

Nota: Si quieres agregar un usuario por defecto a nuestro sistema usando Tinker aquí te dejo un link https://tenocode.com/laravel-registrar-usuario-manualmente/

Codificando

Una vez listas las configuraciones para registrar y confirmar el correo de nuestros usuarios en Laravel, manos a la obra… empezamos con modificar nuestro archivo de laravel user.php, ques esta ubicado dentro de App\Models:

Como se puede ver, se debe extender a MustVerifyEmail. Siguietne paso es crear nuestro template de email:

En nuestro controller de registro de usuario, sino has creado ningun controller con este comando ya tenemos uno:

Nuestro controller de registro debiera quedar:

Agregamos la ruta que debe crearse en nuestro archivo routes\api.php (o en cualquier archivo de rutas que ya tengas configurado).

Listo, ya podemos usar nuestra api de registro y verificación de email, para hacer nuestrar pruebas vamos a utilizar Postman.

Testeando la validación de email

post man registro usuario laravel

Al revisar nuestra base de datos debiesemos tener el usuario insertado, y al revisar nuestro correo nos debería llegar un mail con un link de confirmación de email:

email google laravel
email google laravel

En conclusión, laravel nos facilita la vida con estas funcionalidades ya semi implementadas. Si quieres personalizar este email de notificación, te dejo el siguiente link: https://tenocode.com/personalizar-correo-de-confirmacion-de-email-de-laravel/

Entradas relacionadas

Cambiar el logo de laravel en los email

Los correos electrónicos son una parte crucial de la comunicación con los usuarios en cualquier aplicación web, y personalizar su apariencia puede marcar la diferencia en la…

Personalizar correo de Confirmación de Laravel

En este post personalizaremos el correo de confirmación de email de Laravel.

Registrar usuario manualmente Laravel

Cómo insertar por consola un usuario en laravel?, a continuación veremos como registrar un usuario manualmente en laravel con Tinker