mp3063/mail-activation

Provides easy laravel auth with mail activation!

Downloads

87

Stars

4

Version

v5.5.1

Easy Laravel 5.5 Auth with mail activation

For Laravel 5.4 use version 5.4.2

Preparations

In .env file add your credentials, for example:

DB_HOST=localhost
DB_DATABASE=test_mail_activation
DB_USERNAME=root
DB_PASSWORD=
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=null

In config/mail.php add your mail and name:

'from' => ['address' => '[email protected]', 'name' => 'Your Name'],

In app/User.php file(MODEL) to $fillable array add two more columns to look like this:

protected $fillable = [ 'name', 'email', 'password', 'code', 'active' ];

These will install all necessary views into Resource folder. Run artisan command:

php artisan make:auth

Make shure to erase following line from routes/web.php or just comment it out because routes.php file from package will take place on all routes needed for auth. It's basically same file from Laravel ( changed 3 route to override Laravel methods ):

Auth::routes();

Your routes/web.php file should look like this:

<?php
Route::get('/', function () {
    return view('welcome');
});

//Auth::routes();

Route::get('/home', 'HomeController@index');

Install

Require this package with composer using the following command:

composer require mp3063/mail-activation

In config/app.php file add to ServiceProvider array this line:

mp3063\LaravelMailActivation\LaravelMailActivationServiceProvider::class,

Run:

php artisan vendor:publish

This will copy migration file in database/migrations, and activate.blade.php in resources/emails/auth

Run:

php artisan migrate

#####If your application are running MySQL v5.7.7 and higher you do not need to do next step. If you hit this error:

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

#####You need to do this in AppServiceProvider.php file and inside the boot method set a default string length:

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

End

If you done all this steps you should have all views and routes ready for mail-activation! Just start your server and enjoj! All functionality and routes made by Laravel are preserved!

mp3063

Author

mp3063