Bien, algunas de las cosas por las que es necesario implementar la verificación de email en nuestros proyectos son:
Evitar spam
Corroborar que realmente el usuario este usando su propio correo y no el de otra persona
Por eso vamos a hacerlo facilito y rápido, lo primero es hacerse una cuenta en https://mailtrap.io/, esto sirve para testear cosas como estas, o como el reseteo de password del usuario.
Una vez registrado nos dirigimos en el menu izquierdo a >Inboxes:
a la derecha nos va a salir un menu, tenemos que seleccionar SMTP Settings y vamos a ver algo como esto:
Vamos a copiar los datos de Host, Port, Username, Password
y lo configuramos en nuestro .env
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=9hduas752d0940
MAIL_PASSWORD=d95sdd577f8cf8
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=nahuelprueba@gmail.com
MAIL_FROM_NAME="${APP_NAME}"
Lo que queda es ir a nuestro modelo User e implementar MustVerifyEmail, agregar el Middleware a HomeController y configurar nuestras rutas web para poder recibir los datos
Modelo:
class User extends Authenticatable implements MustVerifyEmail
HomeController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware(['auth','verified']);
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('home');
}
}
Rutas:
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Auth::routes(['verify' => true]); /*Activando la verificación de correo*/
Route::get('/', 'IndexController@index');
Route::get('/perfil', 'PerfilController@index');
Route::get('/home', 'HomeController@index')->name('home');
Una vez registrado el usuario nos va a aparecer lo siguiente:
eso quiere decir que nuestro email de verificación ha sido enviado, así que si vamos a Mailtrap vamos a ver el correo para poder verificar nuestra cuenta:
Top comments (1)
Hola amigo, tu explicación ha sido excelente para culminar mis dudas en cuanto a este tema que quería lograr.
Tengo una duda, ¿cómo haría para configurar mi entorno para que llegara directamente al correo de la persona que se registra en vez de a mailtrap.io?