eagleeye / otp
Laravel OTP 生成器
This package is not auto-updated.
Last update: 2024-09-25 17:44:20 UTC
README
一个用于生成 OTP 的 Laravel 扩展包。
🚀 安装
Composer
允许您通过命令行快速安装。
composer require eagleeye/otp
🚀供应商发布
注意
发布供应商是可选的,只有当您愿意更改配置并使用数据库作为 OTP 存储时才需要。
发布配置文件
php artisan vendor:publish --provider="Eagleeye\Otp\OtpServiceProvider" --tag=config
发布数据库迁移文件
php artisan vendor:publish --provider="Eagleeye\Otp\OtpServiceProvider" --tag=migrations
✨配置文件
注意
您可以在config
文件夹中找到 OTP 配置文件,名称为otp.php
。
otp.php
<?php return [ /** * [Description for prefix] * * Example: G | Output G-12345678 * */ 'prefix'=>null, /** * [Description for boot] * * Example: numeric | Output 12345678 * Example: alphabetic | Output ktylnfdgf * Example: alphanumeric | Output kt7l7fdg9 * Example: mixnumeric | Output !45<45!) * Example: mixalphabetic | Output !ta<hg!) * Example: mixalphanumeric | Output !t4<7g!) */ 'type'=>'numeric', /** * [Description for length] * * Example: 6 | Output 123456 * Example: 8 | Output 12345678 * */ 'length'=>'6', /** * [Description for Mood] * * @return [type] * */ 'mood'=>env('APP_ENV'), /** * [Description for storage] * * Example: databse | OTP will store in databse * Example: cache | OTP will store in cache * Example: session | OTP will store in session */ 'storage'=>'database', /** * [Description for expire] * * OTP expire time * In seconds * */ 'expire'=>"60", /** * [Description for case] * * Example: lower | Output werfghyt * Example: upper | Output AFKUTDFG */ 'case'=>'lower', /** * [Description for table_name] * * Table name to create table in databse * */ 'table_name'=>'otp_table' ];
-
前缀
-
prefix
的默认值是null
。如果您想在每个生成的 OTP 中添加文本、商标或单个字符,如google
注册OTP
,只需添加前缀值。<br>Prefix
和实际的OTP
将由一个 (-
) 分隔。
-
-
类型
-
type
代表OTP
字符串类型。默认值是numeric
。<br>Prefix
和实际的OTP
将由一个-
分隔。
-
-
长度
-
length
代表生成的OTP
中的字符总数。默认长度是 6。
-
-
存储
-
过期时间
expire
- OTP 的有效期为几秒
-
大小写
-
case
- 区分大小写。
-
-
表名
table_name
- 使用此名称创建 OTP 数据库迁移表。默认表名为otp_table
。
🚀用法
导入 OTP 门面
use Eagleeye\Otp\Facades\OTP;
静态函数: get
//Facade accessor public function public function get(String $key) { //processing... }
这将生成一个在过期时间(配置文件中配置
)内有效的 OTP,对于每个 OTP 请求,该方法将响应一个包含新过期时间的新的 OTP 字符串。
$key
:与 OTP 相关联的密钥。
示例
<?php $otp = OTP::get('usertoken'); echo $otp; // 20220317221648 // https://example/url "267958"
静态函数: interval
//Facade accessor public function public function interval(String $key) { //processing... }
这将生成一个在过期时间(配置文件中配置
)内有效的 OTP,对于新请求,只有在之前的 OTP 以 $key
为键已过期或为空时,才会生成新的 OTP。
$key
:与 OTP 相关联的密钥。
OTP 未过期时的示例
<?php $otp = OTP::interval('usertoken'); echo $otp; // 20220317221648 // https://example/url array:2 [▼ "expired" => false "remaining" => "00 00:01:49" //Remaining time of expiration ]
OTP 已过期时的示例
<?php $otp = OTP::interval('usertoken'); echo $otp; // 20220317221648 // https://example/url array:2 [▼ "expired" => true "otp" => "282561" //New otp ]
静态函数: action
//Facade accessor public function public function action(String $key,Callable $callback) { //processing... }
这将生成一个在过期时间(配置文件中配置
)内有效的 OTP,对于每个 OTP 请求,该方法将响应一个包含新过期时间的新的 OTP 字符串。该函数还接受一个额外的 callable
参数,在返回 OTP 字符串之前执行额外的工作(如 SMS、EMAIL 等)。
$key
:与 OTP 相关联的密钥。$callback
:接受一个可调用的函数。特别适用于实现 SMS 网关、Email 等...
示例
<?php $otp = OTP::action('usertoken',function($otp){ //Sms::send('+8801*******',$otp); }); echo $otp; // 20220317221648 // https://example/url "267958"
静态函数: intervalaction
//Facade accessor public function public function intervalaction(String $key,Callable $callback) { //processing... }
与 Interval 类似,该函数将生成新的 OTP,直到之前的 OTP 过期。
$key
:与 OTP 相关联的密钥。$callback
:接受一个可调用的函数。特别适用于实现 SMS 网关、Email 等...
OTP 未过期时的示例
<?php $otp = OTP::intervalaction('usertoken',function($otp){ //Sms::send('+8801*******',$otp); }); echo $otp; // 20220317221648 // https://example/url array:2 [▼ "expired" => false "remaining" => "00 00:01:49" //Remaining time of expiration ]
OTP 已过期时的示例
<?php $otp = OTP::intervalaction('usertoken',function($otp){ //Sms::send('+8801*******',$otp); }); echo $otp; // 20220317221648 // https://example/url array:2 [▼ "expired" => true "otp" => "282561" //New otp ]
静态函数: Readonly
//Facade accessor public function public function readonly($options=nullable) { //processing... }
这将返回一个随机生成的字符串供其他用途。
$options
:它接受一个数组作为参数来替换 配置 文件参数。
示例
<?php $result=OTP::readonly(['prefix'=>'sn','length'=>15,'case'=>'upper','type'=>'alphabetic']); echo $result; // 20220331221403 // http://otp.test/ "sn-ISUQXTFPQYJIMSR"
作者
👤 Shuvo Dewan
- Github: @shuvodewan
贡献
如果您发现此包有任何问题或有任何建议,请提供帮助。