damanmokha / otp-verification
A Laravel package for sending and verifying OTPs (One-Time Passwords) using Twilio.
Requires
- php: ^7.3|^8.0
- laravel/framework: ^10.10
- twilio/sdk: ^7.7
This package is auto-updated.
Last update: 2024-10-24 10:38:08 UTC
README
A Laravel package for sending and verifying OTPs (One-Time Passwords) using Twilio.
Installation
-
Install the package using Composer:
composer require damanmokha/otp-verification
-
Publish the migrations to set up the required database table:
php artisan migrate
If you wish to modify migrations you can publish it using
php artisan vendor:publish --tag=otp-verification-migrations
-
Add your Twilio credentials to your
.env
file:TWILIO_SID=YourTwilioSid TWILIO_AUTH_TOKEN=YourTwilioAuthToken TWILIO_PHONE_NUMBER=YourTwilioPhoneNumber
Replace `YourTwilioSid`, `YourTwilioAuthToken`, and `YourTwilioPhoneNumber` with your actual Twilio credentials.
Don't have Twilio credentials? You can get them from Twilio.
-
Add your config to services array in
app/config/services.php
<?php return [ //...Previous keys// 'twilio' => [ 'sid' => env('TWILIO_SID'), 'token' => env('TWILIO_AUTH_TOKEN'), 'from' => env('TWILIO_PHONE_NUMBER'), ], ];
-
You can set
OTP_SIZE
in .env to configure custom OTP size, default is to4
Usage
-
Basic usage
use Damanmokha\OtpVerification\OtpVerification; $otp = new OtpVerification(); //to send message $otpResponse = $otp->send($phoneNumber, $message); //to verify $isVerified = $otp->verify($phoneNumber, $otp);
-
Complete controller
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Damanmokha\OtpVerification\OtpVerification; class OtpController extends Controller { protected $otp; public function __construct() { $this->otp = new OtpVerification(); } public function sendOtp(Request $request) { $phoneNumber = $request->input('phone_number'); $message = "Your verification otp is: {otp}"; $otpResponse = $this->otp->send($phoneNumber, $message); return $otpResponse; } public function verifyOtp(Request $request) { $phoneNumber = $request->input('phone_number'); $otp = $request->input('otp'); $isVerified = $this->otp->verify($phoneNumber, $otp); return ['verified' => $isVerified]; } }
Visit the GitHub repository for more details and to explore the implementation.
License
This package is open-sourced software licensed under the MIT license.
Feel free to fork, clone, or use this demo application as a reference for implementing OTP verification in your Laravel projects.