Laravel

Laravel 5.8.* Email Verification Example

In this tutorial, we will share with you how to setup register user email verification in laravel 5.8. new user must verify the email address before logic in laravel 5.8. we will send an activation code on the register email address to verify email in laravel 5.8 app.

In laravel old version we are doing the email verification process manually, but in laravel 5.8 they provide in build email verification setup for newly registered users to must have to verify his email before proceeding. You just need to make some basic setup with the need to use middleware, routes and mail configuration.

Just follow this tutorial from scratch and you will set up for email verification in laravel 5.8.* project.



  • Step 1: Install Laravel 5.8.*

First of all, we need to get fresh Laravel 5.8 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 the .env file. So let’s create a username, password, etc. So let’s add.

.env
DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=database_name

DB_USERNAME=your_uname

DB_PASSWORD=your_password

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

php artisan migrate
  • Step 3: Email Configuration

Here, we need to add an email configuration in the .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 provides a very quick way to create a 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:

<?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.8 app. So let’s check by the 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 for updates visit here….

Shaiv Roy

Hy Myself shaiv roy, I am a passionate blogger and love to share ideas among people, I am having good experience with laravel, vue js, react, flutter and doing website and app development work from last 7 years.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button