1. Go to this page and download the library: Download njoguamos/laravel-otp library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
njoguamos / laravel-otp example snippets
return [
/*
|--------------------------------------------------------------------------
| OTP Length
|--------------------------------------------------------------------------
|
| This is the length of the generated OTP token. By default it is set to
| 6 digits. The length of the OTP must be at least 4 digits to ensure
| that the OTP is not easily guessable
|
*/
'length' => env(key: 'OPT_LENGTH', default: 6),
/*
|--------------------------------------------------------------------------
| OTP Validity time by minutes
|--------------------------------------------------------------------------
|
| This is the validity time of the generated OTP token. By default it is
| set to 10 minutes. This means that the OTP will be valid for 10 minutes
| after it is generated. You can change this value to suit your needs.
|
*/
'validity' => env(key: 'OTP_VALIDITY', default: 10),
/*
|--------------------------------------------------------------------------
| Digits Only
|-------------------------------------------------------------------------
|
| When set to true, the generated OTP will only contain digits. When set
| to false, the generated OTP will contain both digits and alphanumeric
| characters which makes it more difficult to guess the OTP.
|
*/
'digits_only' => env(key: 'OTP_DIGITS_ONLY', default: true),
];
use NjoguAmos\Otp\Otp;
use App\Mail\OTPMail;
use Illuminate\Support\Facades\Mail;
$email = '[email protected]';
$otp = Otp::generate(identifier: $email);
Mail::to($email)->send(new OTPMail($otp));
use NjoguAmos\Otp\Otp;
$email = '[email protected]';
$otp = '123456';
$validated = Otp::validate(identifier: $email, token: $otp->token);
$validated // True or False
use NjoguAmos\Otp\Otp;
$otp = Otp::generate(identifier: '[email protected]');
$otp->invalidate();
use Illuminate\Support\Facades\Schedule;
use NjoguAmos\Otp\Models\Otp as OtpModel;
Schedule::command('model:prune', ['--model' => [OtpModel::class]])->everyFiveMinutes();