Email Verification in laravel 5.7 Example

September 11, 2018 | Category : Laravel 5.7 Laravel 5 Laravel PHP

Are you looking to verify email address setup in laravel 5.7, then you are a right place. In this tutorial i will example how to setup email verification in laravel 5.7.

Few days ago laravel introduce new version 5.7, Then provide email verification after registration in new feature of laravel 5.7. Laravel provide auth to create login, registration by default. But if you want to also add email verification then you have to just few stetting and you will be get setup for email registration.

You have to just follow few step to create enable email verification in laravel 5.7.

Step 1: Install Laravel 5.7

First of all, we need to get fresh Laravel 5.7 version application using bellow command because we are going from scratch, So open your terminal OR command prompt and run bellow command:

composer create-project --prefer-dist laravel/laravel blog

Step 2: Database Configuration

In this step, we need to add database configuration details on .env file. So let's create username, password etc. So let's add.

.env

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=laravel572

DB_USERNAME=root

DB_PASSWORD=root

After added database configuration, you need to run default migration of laravel by following command:

php artisan migrate

Step 3: Email Configuration

Here, we need to add email configuration in .env file. We are sending email after user registration so we need to add email smtp details for send email.

.env

MAIL_DRIVER=smtp

MAIL_HOST=smtp.gmail.com

MAIL_PORT=587

MAIL_USERNAME=youremail@gmail.com

MAIL_PASSWORD=yourpass

MAIL_ENCRYPTION=tls

Step 4: Create Auth

Laravel provide very quick way to create registration, login and forgot password with routes by auth command, So simply run bellow command to create:

php artisan make:auth

Step 5: Email Verification Setup

In last step, we need to add email verification setup, so basically we have to add email verification class implement in user model, use middleware for protection. So just update like as bellow files one by one:

app/User.php

<?php

namespace App;

use Illuminate\Notifications\Notifiable;

use Illuminate\Contracts\Auth\MustVerifyEmail;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail

{

use Notifiable;

/**

* The attributes that are mass assignable.

*

* @var array

*/

protected $fillable = [

'name', 'email', 'password',

];

/**

* The attributes that should be hidden for arrays.

*

* @var array

*/

protected $hidden = [

'password', 'remember_token',

];

}

routes/web.php

Route::get('/', function () {

return view('welcome');

});

Auth::routes(['verify' => true]);

Route::get('/home', 'HomeController@index')->name('home');

app/Http/Controllers/HomeController.php

<?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\Http\Response

*/

public function index()

{

return view('home');

}

}

Now you are ready to run your laravel 5.7 app. So let's check by following command:

php artisan serve

You will find Layout like as bellow screenshot:

Home:

Registration:

Email Alert:

Email:

Success:

I hope you found your best...