triverla/laravel-otp

Laravel 生成和验证OTP的包

v1.0.0 2023-08-18 22:49 UTC

This package is auto-updated.

Last update: 2024-09-19 02:02:07 UTC


README

本包旨在简化OTP验证过程的设置。无需数据库。

安装

注意:本包仅支持7.4+

通过Composer安装

composer require triverla/laravel-otp

添加服务提供者及门面

对于Laravel 5.5+

添加包后,服务提供者和门面将自动发现。

对于Laravel旧版本

将服务提供者添加到config/app.php中的providers数组

Triverla\LaravelOtp\OtpServiceProvider::class

将门面添加到config/app.php中的aliases数组

'Otp' => Triverla\LaravelOtp\OtpServiceProvider::class

发布配置

完成后,使用以下命令将配置发布到您的配置文件夹

php artisan vendor:publish --provider="Triverla\LaravelOtp\OtpServiceProvider"

此命令将创建一个config/otp.php文件。

环境变量

将以下键值对添加到Laravel应用的.env文件中

OTP_LENGTH=6
OTP_TIMEOUT=15
OTP_MAILABLE_CLASS=Triverla\LaravelOtp\Notifications\NewOtpMail::class
OTP_SMS_CLASS=Triverla\LaravelOtp\Notifications\NewOtpSms::class
OTP_TRANSPORT_EMAIL=true
OTP_TRANSPORT_SMS=false

自定义通知类

您可以使用自定义类进行邮件和短信通知。您可以通过.envconfig/otp.php添加它

用法

导入门面类

use Triverla\LaravelOtp\Facades\Otp;

otp()

生成OTP

$otp = Otp::generate($unique_secret); // string
$otp = otp()->generate($unique_secret); // string

验证OTP

$otp = Otp::generate($unique_secret); 

$check = otp()->verify($otp, $unique_secret); // bool

重新生成OTP:这可以用来重新发送相同的或不同的OTP

$otp = otp()->regenerate($unique_secret, false); // true to change OTP and false to use same OTP

生成OTP并发送短信或邮件通知给收件人

use Triverla\LaravelOtp\Helpers\OtpNotificationRequest;

$sendOtp = Otp::notify(new OtpNotificationRequest(otp()->generate($unique_secret), $emailAddress, $mobileNumber)); // bool

// $emailAddress and $mobileNumber are nullable. You can use both or either.

贡献

请随意fork此包,并通过提交拉取请求来增强功能。

错误和问题

如果您在此包中发现任何错误或问题,请在此处创建问题问题

安全

如果您发现任何安全相关的问题,请通过电子邮件yusufbenaiah@gmail.com联系。

如何感谢您?

为何不在GitHub仓库上点星并分享此仓库的链接到Twitter或其他社交平台。

别忘了关注我的Twitter

谢谢!Benaiah Yusuf

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件