Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jrean/laravel-user-verification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

351 Commits

Repository files navigation

Laravel User Verification

A PHP package built for Laravel to easily handle user verification and email validation.

Latest Stable Version Total Downloads License

Features

  • Generate and store verification tokens for registered users
  • Send or queue verification emails with token links
  • Handle token verification process
  • Set users as verified
  • Relaunch the verification process anytime

Laravel Compatibility

Laravel Version Package Version
5.0.* - 5.2.* 2.2
5.3.* 3.0
5.4.* 4.1
5.5.* 5.0
5.6.* 6.0
5.7.* - 5.8.* 7.0
6.0.* 8.0
7.0.* - 11.0.* Use master or check below:
7.0.* master
8.0.* 9.0
9.0.* 10.0
10.0.* 11.0
11.0.* 12.0
12.0.* 13.0

This package is now Laravel 12.0 compliant with v13.0.0.

Installation

Via Composer

composer require jrean/laravel-user-verification

Register Service Provider & Facade

Add the service provider to config/app.php. Make sure to add it above the RouteServiceProvider.

'providers' => [
 // ...
 Jrean\UserVerification\UserVerificationServiceProvider::class,
 // ...
 App\Providers\RouteServiceProvider::class,
],

Optionally, add the facade:

'aliases' => [
 // ...
 'UserVerification' => Jrean\UserVerification\Facades\UserVerification::class,
],

Publish Configuration

php artisan vendor:publish --provider="Jrean\UserVerification\UserVerificationServiceProvider" --tag="config"

Database Configuration

The package requires adding two columns to your users table: verified and verification_token.

Run Migrations

php artisan migrate --path="/vendor/jrean/laravel-user-verification/src/resources/migrations"

Or publish and customize the migrations:

php artisan vendor:publish --provider="Jrean\UserVerification\UserVerificationServiceProvider" --tag="migrations"

Middleware

Default Middleware

Register the included middleware in app/Http/Kernel.php:

protected $routeMiddleware = [
 // ...
 'isVerified' => \Jrean\UserVerification\Middleware\IsVerified::class,
];

Apply it to routes:

Route::group(['middleware' => ['isVerified']], function () {
 // Protected routes...
});

Custom Middleware

php artisan make:middleware IsVerified

Email Configuration

Default Email View

The package includes a basic email template. The view receives a $user variable containing user details and the verification token.

Customize Email View

Publish the views:

php artisan vendor:publish --provider="Jrean\UserVerification\UserVerificationServiceProvider" --tag="views"

The views will be available in resources/views/vendor/laravel-user-verification/.

Markdown Email Support

To use Markdown instead of Blade templates, update the user-verification.php config:

'email' => [
 'type' => 'markdown',
],

Email Sending Methods

// Send immediately
UserVerification::send($user, 'Email Verification');
// Queue for sending
UserVerification::sendQueue($user, 'Email Verification');
// Send later
UserVerification::sendLater($seconds, $user, 'Email Verification');

Usage

Routes

The package provides two default routes:

Route::get('email-verification/error', 'Auth\RegisterController@getVerificationError')->name('email-verification.error');
Route::get('email-verification/check/{token}', 'Auth\RegisterController@getVerification')->name('email-verification.check');

Required Trait

Add the VerifiesUsers trait to your registration controller:

use Jrean\UserVerification\Traits\VerifiesUsers;
class RegisterController extends Controller
{
 use RegistersUsers, VerifiesUsers;
 
 // ...
}

Integration Example

Here's a typical implementation in RegisterController.php:

public function register(Request $request)
{
 $this->validator($request->all())->validate();
 $user = $this->create($request->all());
 event(new Registered($user));
 $this->guard()->login($user);
 UserVerification::generate($user);
 UserVerification::send($user, 'Please Verify Your Email');
 return $this->registered($request, $user)
 ?: redirect($this->redirectPath());
}

Auto-Login After Verification

Enable auto-login after verification in the config:

'auto-login' => true,

Translations

Publish translation files:

php artisan vendor:publish --provider="Jrean\UserVerification\UserVerificationServiceProvider" --tag="translations"

API Reference

Core Methods

  • generate(AuthenticatableContract $user) - Generate and save a verification token
  • send(AuthenticatableContract $user, $subject = null, $from = null, $name = null) - Send verification email
  • process($email, $token, $userTable) - Process the token verification

Model Traits

Add the UserVerification trait to your User model for these methods:

  • isVerified() - Check if user is verified
  • isPendingVerification() - Check if verification is pending

Error Handling

The package throws the following exceptions:

  • ModelNotCompliantException
  • TokenMismatchException
  • UserIsVerifiedException
  • UserNotVerifiedException
  • UserNotFoundException
  • UserHasNoEmailException

License

Laravel User Verification is licensed under The MIT License (MIT).

AltStyle によって変換されたページ (->オリジナル) /