ivansotelo / twilio-verify
使用Twilio Verify在Laravel PHP应用程序中验证电话号码
Requires
- php: >=7.2|^8.0
- illuminate/config: ^7.0 || ^8.0 || ^9.0 || ^10.0|^11.0
- illuminate/console: ^7.0 || ^8.0 || ^9.0 || ^10.0|^11.0
- illuminate/support: ^7.0 || ^8.0 || ^9.0 || ^10.0|^11.0
- laravel/ui: ^3.3|^4.3
Requires (Dev)
- laravel-notification-channels/twilio: 3.4
- mockery/mockery: ^1.3
- orchestra/testbench: ^5.0 || ^6.0 || ^7.0 || ^8.0|^9.0
- phpunit/phpunit: ^8.5|^9.5|^10.5
README
介绍
TwilioVerify使验证用户电话号码比自定义验证系统更容易、更安全。它在注册过程中通过短信发送短代码到该号码,以确保电话号码有效。这有助于减少伪造账户的数量和向用户发送短信通知时的失败率。
此软件包使用Twilio通知通道。
内容
安装
您可以通过Composer安装此软件包
composer require ivansotelo/twilio-verify
在app/config/app.php中添加以下内容
IvanSotelo\TwilioVerify\TwilioVerifyServiceProvider::class,
配置
将您的Twilio Account SID、授权令牌和From号码(可选)添加到您的.env
TWILIO_USERNAME=XYZ # optional when using auth token TWILIO_PASSWORD=ZYX # optional when using auth token TWILIO_AUTH_TOKEN=ABCD # optional when using username and password TWILIO_ACCOUNT_SID=1234 # always required TWILIO_FROM=100000000 # otional default from TWILIO_ALPHA_SENDER=HELLO # optional TWILIO_DEBUG_TO=23423423423 # Set a number that call calls/messages should be routed to for debugging
高级配置
运行php artisan vendor:publish --provider="IvanSotelo\TwilioVerify\TwilioVerifyServiceProvider" --tag=config
/config/twilio-verify.php
要运行此软件包中的迁移,请使用以下命令
php artisan migrate --path="/vendor/ivansotelo/twilio-verify/database/migrations"
默认情况下,此软件包使用App\User:class
来获取表名。
要自定义迁移,请使用以下命令发布它
php artisan vendor:publish --provider="IvanSotelo\TwilioVerify\TwilioVerifyServiceProvider" --tag="migrations"
Twilio Verify假设您的MustVerifyPhone特性将随Laravel一起提供的App\User类。如果您想更改此设置,可以在.env文件中指定不同的模型
TWILIO_VERIFY_MODEL=App\User
用法
将MustVerifyPhone特性添加到模型定义中。此特性提供了各种方法,允许您发送验证电话码。
use IvanSotelo\TwilioVerify\Traits\MustVerifyPhone; use IvanSotelo\TwilioVerify\Contracts\MustVerifyPhoneContract; class User extends Authenticatable implements MustVerifyPhoneContract { use MustVerifyPhone, Notifiable; /** * Route notifications for the Twilio channel. * * @param \Illuminate\Notifications\Notification $notification * @return string */ public function routeNotificationForTwilio() { return $this->phone_number; } }
在EventServiceProvider中,将SendPhoneVerificationNotification附加到Illuminate\Auth\Events\Registered事件
namespace App\Providers; use Illuminate\Support\Facades\Event; use Illuminate\Auth\Events\Verified; use Illuminate\Auth\Events\Registered; use IvanSotelo\TwilioVerify\Listeners\SendPhoneVerificationNotification; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; class EventServiceProvider extends ServiceProvider { /** * The event listener mappings for the application. * * @var array */ protected $listen = [ Registered::class => [ SendPhoneVerificationNotification::class, ], Verified::class => [ // You can attach some listener ], ]; }
要注册默认中间件,请将以下行添加到app/Http/Kernel.php
文件中的$routeMiddleware
数组中
protected $routeMiddleware = [ // … 'isVerified' => \IvanSotelo\TwilioVerify\Http\Middleware\EnsurePhoneIsVerified::class,
在您的路由上应用中间件
Route::group(['middleware' => ['isVerified']], function () { // …
默认情况下,此软件包包含两个路由。
Route::get('phone/verify/{code}', 'VerificationController@verify')->name('verification.verify'); Route::post('phone/resend', 'VerificationController@resend')->name('verification.resend');
要自定义翻译,请使用以下命令将文件发布到您的resources/lang/vendor
文件夹
php artisan vendor:publish --provider="IvanSotelo\TwilioVerify\TwilioVerifyServiceProvider" --tag="translations"
许可证
TwilioVerify是开源软件,受MIT许可证许可。