prozorov / data-locker
此包最新版本(0.1.0)没有提供许可证信息。
0.1.0
2020-12-11 20:28 UTC
Requires
- psr/container: ^1.0
- psr/event-dispatcher: ^1.0
- webmozart/assert: ^1.9
Requires (Dev)
- mockery/mockery: >=1.3
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-12 14:33:09 UTC
README
安装
composer require prozorov/data-locker
库架构
用于生成一次性密码(OTP)的库由以下组件组成
- 锁(Locker) 是用于处理一次性密码系统(库接口)的基本类。预期只使用此类。库中的所有其他类都是辅助性的,应用与它们的直接交互不被预期。
- 存储库(Repository) 是与存储(数据库)交互的类。
- 配置类 是包含一次性密码系统所有配置的类。
- 传输系统 将实现带有一次性密码的消息传递的类。
- 消息系统 是消息类。
使用方法
密码存储库
首先需要创建用于一次性密码存储库的适配器。存储库是实现 Prozorov\DataVerification\Contracts\CodeRepositoryInterface
接口的类。
包配置
接下来需要设置包含库工作设置的 Prozorov\DataVerification\Configuration
类。在此类的构造函数中需要传递兼容 PSR-11 的容器(Psr\Container\ContainerInterface
)和配置数组。
配置数组示例
$config = [
'code_repository' => OtpCodeTable::class,
'passwords' => [
'default' => [
'pass_length' => 4,
'creation_code_threshold' => 60,
'limit_per_hour' => 10,
'attempts' => 3,
'password_validation_period' => 3600,
],
],
'transport' => [
'sms' => function () use ($debugCodePath) {
return new DebugTransport($debugCodePath);
},
],
'messages' => [
'sms' => SmsMessage::class,
],
];
配置参数
code_repository
存储密码的类存储库。
有效值
- 字符串。如果传入字符串,库将向 PSR-11 容器请求类。类必须实现
Prozorov\DataVerification\Contracts\CodeRepositoryInterface
接口。 - 返回实现
Prozorov\DataVerification\Contracts\CodeRepositoryInterface
的类的闭包。闭包将仅执行一次,而不是每次请求存储库时都执行。 - 实现
Prozorov\DataVerification\Contracts\CodeRepositoryInterface
接口的对象。
必需参数。默认值:无。
pass_length
密码长度。
有效值
- 大于0的数字。
可选参数。默认值:4。
creation_code_threshold
在相同地址上不能重复请求密码的时间(秒数)。
有效值
- 大于0的数字。
可选参数。默认值:60。
limit_per_hour
在相同地址上每小时可以尝试的次数。
有效值
- 大于0的数字。
可选参数。默认值:10。
attempts
输入密码的尝试次数。
有效值
- 大于0的数字。
可选参数。默认值:3。
password_validation_period
密码的有效期(秒数)。
有效值
- 大于0的数字。
可选参数。默认值:3600(1小时)。
transport_config
消息传递系统设置
有效值:键为传递方法符号代码(例如,sms
、email
)的数组,值为实现 Prozorov\DataVerification\Contracts\TransportInterface
的对象。
- 实现
Prozorov\DataVerification\Contracts\TransportInterface
的类字符串名称。 - 返回实现
Prozorov\DataVerification\Contracts\TransportInterface
的对象的闭包。
messages
消息设置
有效值:键为传递方法符号代码(例如,sms
、email
)的数组,值为继承自 Prozorov\DataVerification\Messages\AbstractMessage
的对象。
- 继承自
Prozorov\DataVerification\Messages\AbstractMessage
的类字符串名称。 - 返回继承自
Prozorov\DataVerification\Messages\AbstractMessage
的对象的闭包。