Laravel 8 – 13
PHP 7.3+
Low commit activity in last 18 months
A long-lived project that still receives updates
Add email verification to your Laravel projects.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

phpunit/phpunit
^9.0|^10.5|^11.5.3|^12.5.12
^6.0|^9.5|^10.0|^11.0

Runtime

^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
^3.0|^4.0
 Project Readme

Laravel Email Confirmation

Latest Version on Packagist Total Downloads

Installation

You can install the package via composer:

composer require beyondcode/laravel-confirm-email

Usage

This package adds a confirmed_at and confirmation_code field to your users table. Publish the migration and the configuration file using

php artisan vendor:publish --provider="BeyondCode\EmailConfirmation\EmailConfirmationServiceProvider"

And run the migrations:

php artisan migrate

Configuring the login, register and forgot password controllers

In order to make use of the email verification, replace the AuthenticatesUsers, RegistersUsers and the SendsPasswordResetEmails traits that come with Laravel, with the ones provided by this package.

These traits can be found in these three files:

  • App\Http\Controllers\Auth\LoginController
  • App\Http\Controllers\Auth\RegisterController
  • App\Http\Controllers\Auth\ForgotPasswordController

Add the confirmation and resend routes

Add the following two routes to your routes/web.php file:

Route::name('auth.resend_confirmation')->get('/register/confirm/resend', 'Auth\RegisterController@resendConfirmation');
Route::name('auth.confirm')->get('/register/confirm/{confirmation_code}', 'Auth\RegisterController@confirm');

Show confirmation messages

This packages adds some flash messages that contain error/information messages for your users. To show them to your users, add this to your login.blade.php:

@if (session('confirmation'))
    <div class="alert alert-info" role="alert">
        {!! session('confirmation') !!}
    </div>
@endif

and this to both your login.blade.php and email.blade.php

@if ($errors->has('confirmation') > 0 )
    <div class="alert alert-danger" role="alert">
        {!! $errors->first('confirmation') !!}
    </div>
@endif

Customization

This package comes with a language file, that allows you to modify the error / confirmation messages that your user might see. In addition to that, you can change the notification class that will be used to send the confirmation code completely, by changing it in the config/confirmation.php file.

Change redirect routes

You can change all possible redirect routes by including these values either as properties in your registration controller, or as methods returning the route/URL string:

  • redirectConfirmationTo
  • redirectAfterRegistrationTo
  • redirectAfterResendConfirmationTo

They all default to route('login').

The Confirmed Event

On successful email confirmation, this package dispatches a Confirmed event, in order for you to conveniently handle any custom logic, such as sending a welcome email or automatically logging the user in.

Simply add the Confirmed event, and your listeners, to the EventServiceProvider in your application:

    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'BeyondCode\EmailConfirmation\Events\Confirmed' => [
            'App\Listeners\YourOnConfirmedListener'
        ]
    ];

For more information about registering events and listeners, please refer to the Laravel docs.

Catch, test and debug application mails with Laravel Herd

Laravel Herd provides an integrated local email service, streamlining the process of testing and debugging application emails. The email service organizes emails into distinct inboxes for each application, ensuring they are easily accessible and simple to locate.

herd.laravel.com

image

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email marcel@beyondco.de instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.