Skip to content
/ otp Public

One Time Password for Laravel

License

Notifications You must be signed in to change notification settings

viezel/otp

Repository files navigation

One Time Password for Laravel

Latest Version on Packagist GitHub Tests Action Status Type Coverage

This package is sending out a 6 digit verification code per email, when a user visits a route in your Laravel app. By default, the user identity verification will be valid for 30 minutes.

Verify

Installation

  1. Install the package via composer:
composer require viezel/otp
php artisan vendor:publish --provider="Viezel\OTP\OTPServiceProvider" --tag="migrations"
php artisan migrate
  1. Add Middleware check_otp to the routes that should verify the User Identity.
Route::get('some/protected/route', MyController::class)->middleware(['auth', 'check_otp']);
Route::get('other/route', MyOtherController::class)->middleware(['auth', 'check_otp']);

Config

You can publish the config file with:

php artisan vendor:publish --provider="Viezel\OTP\OTPServiceProvider" --tag="otp-config"
return [
    /*
     * How long time in minutes should the verification code be valid for
     */
    'link_expires_in_minutes' => 300,

    /*
     * How long time in minutes should the user be verified for the certain route
     */
    'validation_expires_after_minutes' => 30,

    /*
     * Should be use the queue to sent out the verification email
     */
    'use_queue' => false,

    /*
     * Route Prefix
     */
    'route_prefix' => '',

    /*
     * Route Middleware
     */
    'route_middleware' => ['web', 'auth'],
];

Customize

You can build up your own verification view. Just publish the views and change what you need.

The package provides a blade component to reuse. Its based on Alpine.js and Tailwind CSS.

<x-otp::pincode url="{{ $url }}"></x-otp::pincode>

Testing

composer test

Credits

License

The MIT License (MIT). Please see License File for more information.

About

One Time Password for Laravel

Resources

License

Stars

Watchers

Forks

Packages

No packages published