LaravelOtp
is a Laravel package, designed to generate OTP and Validate OTP using simple steps. This packages will show all OTP history.
- Generate OTP
- Verify OTP
- Methods
- OTP Lists
- Test Cases
- Generate OTP
- Verify OTP
- Get the User OTP List
- Generate custom lenth, expiry and formate OTP
You can install this package via composer using:
composer require signaturetech/laravel-otp
Next run the command below to setup api-response.config file, you can set your configuration.
php artisan vendor:publish --tag=otp-config
Now add the use SignatureTech\LaravelOtp\Traits\Otpable
trait to your model.
use SignatureTech\LaravelOtp\Traits\Otpable;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable, Otpable;
}
Please use below code to generate otp:
- Get User Details
use App\Models\User;
$user = User::first();
- Create Otp Instance
use SignatureTech\LaravelOtp\Otp;
$otp = Otp::for($user->email)->generate();
Note: You can use email/mobile/phone number to generate otp Just pass the detail using for
method.
Note: You can use more method to setting otp all methods described in methods
section.
- Attach Otp with user
$userOtp = $user->createOtp($otp);
$otp = $user->otp;
You can verify otp by using below code:
- Get the use details
use App\Models\User;
$user = User::first();
- Get Otp Instance
use SignatureTech\LaravelOtp\Otp;
$otp = Otp::for($user->email)->getOtp();
- Verify Otp
try {
$user->verifyOtp($otp, $request->get('otp'));
} catch (OtpInvalidException $e) {
return $e->getMessage;
} catch (OtpExpiredException $e) {
return $e->getMessage;
}
You can also create otp without model using the following:
- Create OTP
use SignatureTech\LaravelOtp\Otp;
$otp = Otp::for($user->email)->create();
Note: You can use email/mobile/phone number to generate otp Just pass the detail using for
method.
Note: You can use more method to setting otp all methods described in methods
section.
- Verify Otp
try {
$otp->verifyOtp($request->get('otp'));
} catch (OtpInvalidException $e) {
return $e->getMessage;
} catch (OtpExpiredException $e) {
return $e->getMessage;
}
- Set length of otp
use SignatureTech\LaravelOtp\Otp;
// Set Length of OTP
$otp = Otp::for($user->email)->setLength(4)->generate();
Note: Default length is 6 digit and you can change the default digit to add the OTP_LENGTH=4
in .env
or config/otp.php
file
- Set Format (Available Format: alpha | alphanumeric | numeric)
use SignatureTech\LaravelOtp\Otp;
// Set Format (Available Format: alpha | alphanumeric | numeric)
$otp = Otp::for($user->email)->setFormat('numeric')->generate();
Note: Default format is numeric and you can change the default format to add the OTP_FORMAT=4
in .env
or config/otp.php
file
- Set Expiry (In minutes)
use SignatureTech\LaravelOtp\Otp;
// Set Format (Available Format: alpha | alphanumeric | numeric)
$otp = Otp::for($user->email)->setExpiry(20)->generate();
Note: Default expiry is 10 minutes and you can change this to add the OTP_EXPIRY=20
in .env
or config/otp.php
file
- Written and copyrighted ©2022 by Prem Chand Saini (prem@signaturetech.in)
- ResponseBuilder is open-sourced software licensed under the MIT license