DEV Community

Nahuel Segovia
Nahuel Segovia

Posted on

2 1

Implementado la verificación de email en Laravel 7

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:

Alt Text

a la derecha nos va a salir un menu, tenemos que seleccionar SMTP Settings y vamos a ver algo como esto:

Alt Text

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}"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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');
    }
}
Enter fullscreen mode Exit fullscreen mode

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');
Enter fullscreen mode Exit fullscreen mode

Una vez registrado el usuario nos va a aparecer lo siguiente:

Alt Text

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:

Alt Text

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (1)

Collapse
 
dabydat profile image
David Gómez

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?

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay