This package was developed to give you a quick start to communicate with the Twilio Verify service.
An elegant third-party integration to validate users with SMS, Voice, Email and Push. Add verification to any step of your userβs journey with a single API.
- PHP:
^8.0
- Laravel:
^8.12
- Twilio Account
You can install the package via composer:
composer require codebar-ag/laravel-twilio-verify
Add the following environment variables to your .env
file:
TWILIO_ACCOUNT_SID=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
TWILIO_AUTH_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
TWILIO_SERVICE_SID=VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
use CodebarAg\TwilioVerify\Facades\TwilioVerify;
/**
* Start a new SMS verification to the phone number.
*/
$verificationStart = TwilioVerify::start(to: '+12085059915');
/**
* Check a verification code.
*/
$verificationCheck = TwilioVerify::check(to: '+12085059915', code: '1337');
- The generated code is valid for (10 minutes)[ https://www.twilio.com/docs/verify/api/rate-limits-and-timeouts].
- You have attempted to send the verification code more than 5 times and have (reached the limit)[https://www.twilio.com/docs/api/errors/60203].
CodebarAg\TwilioVerify\DTO\SendCodeAttempt {
+time: Illuminate\Support\Carbon // Carbon
+channel: "sms" // string
+attempt_sid: "VLMn1NOnmIVWMITO4FbVGxNmEMJ72KKaB2" // string
}
CodebarAg\TwilioVerify\DTO\Lookup {
+carrier: CodebarAg\TwilioVerify\DTO\Carrier {
+error_code: null // ?string
+name: "Carrier Name" // string
+mobile_country_code: "310" // string
+mobile_network_code: "150" // string
+type: "150" // string
}
}
CodebarAg\TwilioVerify\DTO\VerificationStart
+sid: "VEkEJNNkLugY4hietPDbcqUUZz3G5NoTTZ" // string
+service_sid: "VAssMsB84NdN0aJJceYsExX1223qAmrubx" // string
+account_sid: "ACizUsoInA3dbKR5LA9tOqqA0O3NFSHSNc" // string
+to: "+41795555825" // string
+channel: "sms" // string
+status: "pending" // string
+valid: false // bool
+created_at: Illuminate\Support\Carbon // Carbon
+updated_at: Illuminate\Support\Carbon // Carbon
+lookup: CodebarAg\TwilioVerify\DTO\Lookup {...} // Lookup
+send_code_attempts: Illuminate\Support\Collection { // Collection
0 => CodebarAg\TwilioVerify\DTO\SendCodeAttempt {
+time: Illuminate\Support\Carbon // Carbon
+channel: "sms" // string
+attempt_sid: "VLTvj9jhh76cI78Hc1x0c3UORWJwwqVeTN" // string
}
]
}
+url: "https://verify.twilio.com/v2/Services/VAssMsB84NdN0aJJceYsExX1223qAmrubx/Verifications" // string
}
CodebarAg\TwilioVerify\DTO\VerificationCheck {
+sid: "VEvRzh4hPUqmAjeC6li092VNT0yfd23lag" // string
+service_sid: "VAxSR0Wq91djjG9PAYtrtjt11f0I4lqdwa" // string
+account_sid: "ACcI5zbEYvLr0vPIUTQzWkTpP5DPqTCYDK" // string
+to: "+41795555825" // string
+channel: "sms" // string
+status: "approved" // string
+valid: true // bool
+created_at: Illuminate\Support\Carbon // Carbon
+updated_at: Illuminate\Support\Carbon // Carbon
}
You can publish the config file with:
php artisan vendor:publish --provider="CodebarAg\TwilioVerify\TwilioVerifyServiceProvider" --tag="laravel-twilio-verify-config"
This is the contents of the published config file:
return [
/*
|--------------------------------------------------------------------------
| Twilio Verify Configuration
|--------------------------------------------------------------------------
|
| You can find your Account SID and Auth Token in the Console Dashboard.
| Additionally you should create a new Verify service and paste it in
| here. Afterwards you are ready to communicate with Twilio Verify.
|
*/
'url' => env('TWILIO_URL', 'https://verify.twilio.com/v2/Services'),
'account_sid' => env('TWILIO_ACCOUNT_SID', 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),
'auth_token' => env('TWILIO_AUTH_TOKEN', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),
'service_sid' => env('TWILIO_SERVICE_SID', 'VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),
];
Following events are fired:
use CodebarAg\TwilioVerify\Events\TwilioVerifyResponseLog;
// Log each response from the Twilio REST API.
TwilioVerifyResponseLog::class => [
//
],
Copy your own phpunit.xml-file.
cp phpunit.xml.dist phpunit.xml
Modify environment variables in the phpunit.xml-file:
<env name="TWILIO_ACCOUNT_SID" value="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
<env name="TWILIO_AUTH_TOKEN" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
<env name="TWILIO_SERVICE_SID" value="VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
Run the tests:
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
- Ruslan Steiger
- All Contributors
- Skeleton Repository from Spatie
- Laravel Package Training from Spatie
The MIT License (MIT). Please see License File for more information.