Introducción
La verificación de correo electrónico (Email Verification) es un mecanismo para comprobar que el usuario realmente posee la dirección de correo que ha registrado. Laravel proporciona de serie el envío del correo de confirmación y la lógica de verificación, por lo que puedes construir un flujo de autenticación seguro con muy poca implementación.Si utilizas un starter kit, las pantallas de autenticación y el flujo de verificación de correo ya están integrados. Si lo implementas manualmente, sigue los pasos de esta página para definir por tu cuenta el modelo, las rutas y las vistas.
Preparación del modelo y de la base de datos
Implementar MustVerifyEmail
Comprueba queApp\Models\User implemente la interfaz Illuminate\Contracts\Auth\MustVerifyEmail.
Registered.
Comprobar la columna email_verified_at
La tablausers debe contar con una columna email_verified_at. Habitualmente ya está incluida en la migración por defecto 0001_01_01_000000_create_users_table.php.
Enrutamiento (tres rutas)
Para la verificación de correo se definen tres rutas:verification.notice, verification.verify y verification.send.
Definir la ruta de aviso de verificación (verification.notice)
Devuelve la pantalla que muestra a los usuarios no verificados el mensaje “Por favor, verifica tu correo”.
Definir la ruta de verificación (verification.verify)
Cuando el usuario pulsa el enlace del correo, se valida la URL firmada y se completa la verificación.
Protección de rutas
Para permitir el acceso solo a usuarios ya verificados, usa el middlewareverified. Habitualmente se combina con auth.
verification.notice.
Personalización
Para personalizar el cuerpo del correo de verificación, configuraVerifyEmail::toMailUsing en el método boot de AppServiceProvider.
Eventos
Cuando se completa la verificación de correo se dispara el eventoIlluminate\Auth\Events\Verified. Los starter kits lo gestionan automáticamente; en una implementación manual, añade el manejo del evento según lo necesites.