2017 © Pedro Peláez
 

library email-verification

Support for verifying user email

image

kilroyweb/email-verification

Support for verifying user email

  • Wednesday, June 28, 2017
  • by kilroyweb
  • Repository
  • 1 Watchers
  • 1 Stars
  • 19 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 19 % Grown

The README.md

Installation

composer require kilroyweb/email-verification

Add to the $routeMiddleware array in app/Http/Kernel.php, (*1)

'verified_email' => \KilroyWeb\EmailVerification\Middleware\RequireVerifiedEmail::class,
'non_verified_email' => \KilroyWeb\EmailVerification\Middleware\RequireNonVerifiedEmail::class,

Add the HasEmailVerification trait to your User class, (*2)

use \KilroyWeb\EmailVerification\Traits\HasEmailVerification;

Routes

Use the supplied "verified_email" or "non_verified_email" middleware, (*3)

Route::namespace('Email')->prefix('/email')->group(function(){
    Route::namespace('Verification')->prefix('/verification')->group(function(){
        Route::get('/create', 'VerificationController@create')->middleware(['auth','non_verified_email']);
        Route::get('/{token}', 'VerificationController@show');
    });
});

Controllers

A controller is easy to whip up using available methods inherited from the HasEmailVerification trait:, (*4)

<?php

namespace App\Http\Controllers\Email\Verification;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class VerificationController extends Controller
{

    public function create(){
        $user = \Auth::user();
        $user->requestEmailVerification();
        return redirect('/account')->withSuccess('Verification email sent!');

    }

    public function show($token){
        $user = \App\User::findByEmailVerificationToken($token);
        if(!$user){
            abort(404);
        }
        $user->verifyEmail();
        \Auth::login($user);
        return redirect('/account')->withSuccess('Your email address has been verified!');
    }

}

Create a mailable (app/Mail/EmailVerification.php) that is triggered during "requestEmailVerification()", (*5)

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class EmailVerification extends Mailable
{
    use Queueable, SerializesModels;

    public $verifiableModel;

    public function __construct($verifiableModel)
    {
        $this->verifiableModel = $verifiableModel;
    }

    /**
     *
     *Build the message.
     *
     * @return $this
     */
    public function build()
    {
        $verifiableModel = $this->verifiableModel;
        $this->to($verifiableModel->email);
        return $this->view('email.email-verification.create',[
            'verifiableModel'=>$verifiableModel,
        ]);
    }
}

And view (email.email-verification.create):, (*6)

@extends('layouts.email.app')

@section('content')

    <h2>Click here to verify your email address:</h2>

    <p><a href="{{ url('/email/verification/'.$verifiableModel->getEmailVerificationToken()) }}">Verify My Email</a></p>

@endsection

In your register controller, call the requestEmailVerification() method to send verification on register:, (*7)

protected function create(array $data)
    {
        $user = User::create([
            ...
        ]);
        $user->requestEmailVerification();
        return $user;
    }

The Versions

28/06 2017

dev-master

9999999-dev

Support for verifying user email

  Sources   Download

MIT

laravel

28/06 2017

1.0.1

1.0.1.0

Support for verifying user email

  Sources   Download

MIT

laravel