beyondcode / laravel-confirm-email
Add email verification to your Laravel projects.
Installs: 48 425
Dependents: 0
Suggesters: 0
Security: 0
Stars: 545
Watchers: 17
Forks: 55
Open Issues: 0
Requires
- php: ^7.3|^8.0
- illuminate/auth: ^8.0|^9.0|^10.0|^11.0
- illuminate/database: ^8.0|^9.0|^10.0|^11.0
- illuminate/notifications: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- laravel/ui: ^3.0|^4.0
Requires (Dev)
- orchestra/testbench: ^6.0|^9.5
- phpunit/phpunit: ^9.0|^10.5
This package is auto-updated.
Last update: 2024-12-05 15:30:59 UTC
README
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.
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.