ntavelis / auth-email
Generates Email Authentication in Laravel >= 5.4 on top of artisan's make:auth command.
Requires
- php: >=5.6.4
- illuminate/contracts: ~5.4
- illuminate/filesystem: ~5.4
- illuminate/http: ~5.4
- illuminate/support: ~5.4
Requires (Dev)
- phpunit/phpunit: ~4.0||~5.0
- squizlabs/php_codesniffer: ^2.3
README
Auth-email provides out of the box email authentication for your Laravel >=5.4 application. It leverages the Laravel's functionality provided by the make:auth
command, which runs for you and then proceeds to configure email authentication.
Which means that every user that registers to your application, will receive an email with an activate account button. He will have to click the activate account, in order to prove that he is the owner of the email and therefore activate his account.
Installation
Via Composer
$ composer require ntavelis/auth-email
Then add the service provider in config/app.php
:
Note: Starting with Laravel 5.5 this package gets auto discovered so you can skip this step!
'providers' => [ Ntavelis\AuthEmail\AuthEmailServiceProvider::class, ];
Run your new command:
$ php artisan auth:email
Finally run your migrations. Now you have email Authentication. Visit /register
to register a new user via email.
Note: Make sure you configured your email settings properly.
Options/Parameters
Auth-email provides the following options:
If you have already bootstrapped your application with make:auth
before you discovered this package, then you can pass the -o
, --only
flag, to make auth-email skip running make:auth
command.
$ php artisan auth:email -o
Auth-email can run your migrations after setup, to keep installation process as minimum as possible. Pass it the -m
, --migrate
flag.
$ php artisan auth:email -m
Note: Make sure you configured your database settings properly before running the command.
Auth-email can make your generated app/mail/ActivateAccount.php
implement the ShouldQueue interface. Pass it the -s
, --queue
flag.
$ php artisan auth:email -s
Note: Make sure you configured your queue driver properly.
You can also run the command with any number of flags.
$ php artisan auth:email -o -m -s
Migrations
After the initial installation, you need to run your migrations, auth-email added 2 migration files on your database/migrations/
path.
Which provide 1 new table to store activation tokens and 1 new column in the user table, create_users_table migration is provided by default in laravel, we just add 1 column with the new migration to track the authenticated(Via email) users.
Alternatively as mentioned above pass it the -m
flag to instantly run the migrations for you after setup.
$ php artisan auth:email -m
Email markup
To change the look of the activation email you send to the user, you have to modify the resources/views/emails/auth.blade.php
blade file.
This file uses Laravel's 5.4 new feature markdown mailables, please refer to the Laravel documentation for details. https://laravel.com/docs/5.4/mail#markdown-mailables
The mailable that is responsible for the markup (subject,sender etc) of the activation mail, is located in the app/Mail/ActivateAccount.php
.
Flash messages
Auth-email provides 2 flash messages out of the box.
The authEmail.mailSend
message informs the user after registration to check their inbox and activate their account.
The authEmail.confirm
message informs the user, who just tried to login without being authenticated, that they have to click the activate button on the email we sent them.
If you need to change these messages, you can do so from this file resources/lang/en/authEmail.php
.
Queue
The default behavior is not to implement the ShouldQueue interface, for simplicity on setup. But I strongly encourage you to use queues.
If you want your email to implement ShouldQueue interface, therefore to be queueable. You can pass it the -s
, --queue
flag.
Then your generated email in the app/mail/ActivateAccount.php
would implement the ShouldQueue interface.
Alternatively you can manually make it implement ShouldQueue interface.
You can read more about queues on Laravel's documentation https://laravel.com/docs/5.4/queues.
Validation
This package adds one more validation rule called alpha_spaces
. It considers valid alphanumeric characters and spaces, and is used to validate the name
, on the registration form.
You can find the displayed message in, resources/lang/en/validation.php
, and if you are interested the validation logic is located in this package's ServiceProvider on the register method.
Generated Files
List of all the generated files from the auth:email
command:
Also one more line is appended into your routes file web.php
, which creates the activation route of your application.
The activation route looks like this /user/activation/{token}
.
Requirements
Requires PHP >= 5.6.*
Laravel Framework to be installed, with version >= 5.4
Supported Laravel versions
This package supports all Laravel versions from 5.4 onwards.
- From version 1.4.0, support has been added for Laravel 5.6
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email davelis89@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.