coderjp / verifier by coderjp

Email verification for Laravel 5
1,172
2
2
Package Data
Maintainer Username: coderjp
Package Create Date: 2015-05-19
Package Last Update: 2016-09-12
Language: PHP
License: MIT
Last Refreshed: 2024-04-17 15:00:45
Package Statistics
Total Downloads: 1,172
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 2
Total Watchers: 2
Total Forks: 1
Total Open Issues: 0

Verifier (Laravel 5 Package)

Verifier is a package for Laravel 5 that sends out verification emails to users in order for them to prove their email is valid. Users will click a link in the email to validate their address.

Installation

Require this package with composer using the following command:

composer require coderjp/verifier

Then run composer install or composer update.

After updating composer, add the service provider to the providers array in config/app.php

'Coderjp\Verifier\VerifierServiceProvider',

Generate the config file for changing various settings. This can be found in config/verifier.php.

php artisan vendor:publish --provider=Coderjp\\Verifier\\VerifierServiceProvider

Make sure the tables config option is correct. By default the table used is users. Then run the following command to generate the migrations:

php artisan verifier:migration

Usage

Model

Add the VerifierUserTrait to the model you wish to verify against. This will usually be the User model.

<?php

use Coderjp\Verifier\Traits\VerifierUserTrait;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword, EntrustUserTrait, SoftDeletes, VerifierUserTrait;

    ...
}

Template

You will need to make a mail template for the welcome email to use. By default the config uses emails.welcome.

The variable $user will be passed to your template. This will be an array of the relevant user.


Hi {{ $user['name'] }},

Welcome to our site. Please click the following link to activate your account:

{{ url('verify', $user['verification_code']) }}

Regards, CoderJP

Verifying

Where you create a user, you can now call the sendVerification() method on the model. This will trigger an email to be sent to the user.

...

public function store(CreateUserRequest $request)
{
        $user = User::create($request->all());
        $user->sendVerification();
        
        ...
}

...

To verify a token you can use the verify() method like so:

<?php

class UserController extends Controller {

    ...
    
    public function validate(Request $request, $code)
    {
            $user = User::verify($code);
            
            if ($user) {
                // $user = User model
                return view('user.validated');
            } else {
                // $user = null;
                return view('user.invalid');
            }
    }

    ...
    
}

If the code is valid, verify will set validated = true, remove the validation code from the database and return the related user. If the code is invalid null is returned.

Overriding

Some options may need more thought than a simple attribute, the following can be overwritten by declaring methods in your model

To: Name

This is the name of the recipient. By default it uses the name attribute of the model, however you can override it by declaring the following:

...

public function getVerificationEmailName() {
    return ucwords($this->first_name .' '. $this->last_name);
}

...

Email Subject

By default, the config option subject is used, however you can define the following method in the model:

...

public function getVerificationEmailSubject()
{
    return 'Welcome to our site ' . $this->name;
}

...

License

Verifier is open-sourced software licensed under the MIT license