- Introducción
- Consideraciones de la base De datos
- Rutas
- Vistas
- Luego de verificar correos electrónicos
- Eventos
Introducción
Muchas aplicaciones web requieren que los usuarios verifiquen sus correos electrónicos antes de usar la aplicación. En lugar de forzarte a volver a implementar esto en cada aplicación, Laravel proporciona métodos convenientes para enviar y verificar solicitudes de verificación de correos electrónicos.
Preparación del modelo
Para comenzar, verifica que tu modelo App\User
implementa la interfaz Illuminate\Contracts\Auth\MustVerifyEmail
:
<?php namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable implements MustVerifyEmail { use Notifiable; // ... }
Consideraciones de la base de datos
Columna de verificación de correo electrónico
Luego, tu tabla users
debe contener una columna email_verified_at
para almacenar la fecha y la hora en la que la dirección de correo electrónico fue verificada. Por defecto, la migración de la tabla users
incluida con el framework Laravel ya incluye esta columna. Así que, lo único que necesitas es ejecutar la migración de la base de datos:
php artisan migrate
Rutas
Laravel incluye la clase Auth\VerificationController
que contiene la lógica necesaria para enviar enlaces de verificación y verificar correos electrónicos. Para registrar las rutas necesarias para este controlador, pasa la opción verify
al método Auth::routes
:
Auth::routes(['verify' => true]);
Protegiendo rutas
El middleware de rutas puede ser usado para permitir que sólo usuarios autorizados puedan acceder a una ruta dada. Laravel viene con un middleware verified
, que está definido en Illuminate\Auth\Middleware\EnsureEmailIsVerified
. Dado que este middleware ya está registrado en el kernel HTTP de tu aplicación, lo único que necesitas hacer es adjuntar el middleware a una definición de ruta:
Route::get('profile', function () { // Only verified users may enter... })->middleware('verified');
Vistas
Para generar todas las vistas necesarias para la verificación de correo electrónico, puedes usar el paquete laravel/ui
de Composer:
composer require laravel/ui "^1.2" --dev php artisan ui vue --auth
La vista de verificación de correo electrónico es colocada en resources/views/auth/verify.blade.php
. Eres libre de personalizar esta vista según sea necesario para tu aplicación.
Luego de verificar correos electrónicos
Luego de que una dirección de correo electrónico es verificada, el usuario será redirigido automáticamente a /home
. Puedes personalizar la ubicación de redirección post-verificación definiendo un método o propiedad redirectTo
en VerificationController
:
protected $redirectTo = '/dashboard';
Eventos
Laravel despacha eventos durante el proceso de verificación de correo electrónico. Puedes agregar listeners a estos eventos en tu EventServiceProvider
:
/** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'Illuminate\Auth\Events\Verified' => [ 'App\Listeners\LogVerifiedUser', ], ];
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Autorización - Documentación de Laravel 6 Lección siguiente Cifrado - Documentación de Laravel 6