codebar-ag / laravel-twilio-verify
Laravel 与 Twilio Verify 集成
v2.1
2024-03-25 16:54 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.8
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.46
- laravel/pint: ^1.14
- nunomaduro/collision: ^7.10
- orchestra/testbench: ^8.20
- pestphp/pest: ^2.31
- phpunit/phpunit: ^10.5
- spatie/laravel-ray: ^1.35
- vimeo/psalm: ^5.19
This package is auto-updated.
Last update: 2024-09-25 18:04:19 UTC
README
本软件包旨在帮助您快速开始与 Twilio Verify 服务进行通信。
⚠️ 本软件包并非旨在替代官方的 Twilio REST API。如需进一步功能,请参阅文档。⚠️
💡 Twilio Verify 是什么?
一个优雅的第三方集成,使用 SMS、语音、邮件和推送验证用户。通过单个 API 将验证添加到用户旅程的任何步骤。
🛠 要求
- PHP:
^8.0
- Laravel:
^8.12
- Twilio 账户
⚙️ 安装
您可以通过 composer 安装此软件包
composer require codebar-ag/laravel-twilio-verify
将以下环境变量添加到您的 .env
文件中
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');
🔢 验证码限制
- 生成的代码有效期为(10分钟)[ https://www.twilio.com/docs/verify/api/rate-limits-and-timeouts].
- 您已尝试发送验证码超过 5 次,并且(达到限制)[https://www.twilio.com/docs/api/errors/60203].
🏋️ DTO 展示
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 }
🔧 配置文件
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="CodebarAg\TwilioVerify\TwilioVerifyServiceProvider" --tag="laravel-twilio-verify-config"
这是发布配置文件的内容
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'), ];
✨ 事件
以下事件会被触发
use CodebarAg\TwilioVerify\Events\TwilioVerifyResponseLog; // Log each response from the Twilio REST API. TwilioVerifyResponseLog::class => [ // ],
🚧 测试
复制您的自己的 phpunit.xml 文件。
cp phpunit.xml.dist phpunit.xml
在 phpunit.xml 文件中修改环境变量
<env name="TWILIO_ACCOUNT_SID" value="ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/> <env name="TWILIO_AUTH_TOKEN" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/> <env name="TWILIO_SERVICE_SID" value="VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
运行测试
composer test
📝 更新日志
请参阅 CHANGELOG 了解最近更改的详细信息。
✏️ 贡献
请参阅 CONTRIBUTING 了解详细信息。
🧑💻 安全漏洞
请查看 我们的安全策略 了解如何报告安全漏洞。
🙏 致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。