In this article i will show you how to add Add Double-opt-in registration for Laravel 5.1 . double -optin-in registration help us to decrease the rate of spam in our laravel application .so here we will be using alaravel package called  Double-opt-in registration for Laravel 5.1

This package provides double-opt-in registration with user activation to Laravel 5.1.


  • Newly registered users are marked “inactive” and can’t login into the application
  • An email with a verification link is sent to the user after registration
  • A form for requesting a new activation email (in case the first activation email was lost)


The package extends the functionality of the trait IlluminateFoundationAuthAuthenticatesUsers, so if you are using a custom Authentication Controller this package might not work for you. Also the package asumes the User model and user table are used for authentication (may be decoupled in later versions)



Install the package via composer:

    composer require "m3rten/laravel-double-opt-in"

Add the Service Provider to config/app.php

    'providers' => [
        /* ... */

Replace the used traits in app/Http/Controllers/Auth/AuthController.php with:

    use AuthenticatesUsers, RegisterAndActivateUsers, ThrottlesLogins {
        RegisterAndActivateUsers::getCredentials insteadof AuthenticatesUsers;

Publish the packages assets and run the migration.

    php artisan vendor:publish
    php artisan migrate

If you’d like to alter the provided blade templates you may edit the files in /resources/views/vendor/doubleoptin. If you’d like to alter the provided language files you may edit the files in /resources/lang/vendor/doubleoptin.

Add the activation an verification routes to your app/Http/routes.php

    Route::get('/verify/{token}', ['as' => 'activation.verify','uses' => '[email protected]',]);
    Route::get('/activate', ['as' => 'activation.edit','uses' => '[email protected]',]);
    Route::post('/activate', ['as' => 'activation.update','uses' => '[email protected]',]);

Error and success messages are output via Laravels flash messaging using the variables “message” and “message-type”. You may include the message output in your login and registration forms: