clarity-tech / laravel-otp-generator
a lightweight implementation of generating OTP and validating backed by Cache Storage for Laravel
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- illuminate/http: ^9.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-10-29 06:19:20 UTC
README
When you use Redis or any Cache driver it will self destruct things
This is where your description should go. Limit it to a paragraph or two. Consider adding a small example.
Support us
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.
Installation
You can install the package via composer:
composer require clarity-tech/laravel-otp-generator
You can publish the config file with:
php artisan vendor:publish --tag="laravel-otp-generator-config"
This is the contents of the published config file:
// config for ClarityTech/LaravelOtpGenerator return [ 'debug' => false, 'expiry' => env('OTP_EXPIRY', 15 * 60), 'length' => env('OTP_LENGTH', 6), ];
Usage
use ClarityTech\LaravelOtpGenerator\Facades\AugmentedOTP; $otp = AugmentedOTP::generateWithKey(9706353416); $isValid = AugmentedOTP::withKey(9706353416)->validate(123456); $isValid = AugmentedOTP::withKey(9706353416)->verify(123456);//does not trigger exception
The validate methods throws two exceptions based on which you can handle in your use case and modify the response to give for the user output as needed
use ClarityTech\LaravelOtpGenerator\Exceptions\OTPExpiredException; use ClarityTech\LaravelOtpGenerator\Exceptions\OTPInvalidException;
And when you have request context available you can pass that too for more secure hash key generation internally which locks the OTP to be valid for that session / IP address only
$instance = AugmentedOTP::fromRequest(Request $request, string $mobileNo); $otp = $instance->generate(); $otp = $instance->validate(123456);
you can determine whether provide code is valid or not
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.