codebar-ag/laravel-twilio-verify

Laravel 与 Twilio Verify 集成

v2.1 2024-03-25 16:54 UTC

This package is auto-updated.

Last update: 2024-09-25 18:04:19 UTC


README

Latest Version on Packagist Total Downloads run-tests Psalm Check & fix styling

本软件包旨在帮助您快速开始与 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');

🔢 验证码限制

🏋️ 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)。请参阅 许可证文件 了解更多信息。