prozorov/data-locker
Composer 安装命令:
composer require prozorov/data-locker
包简介
README 文档
README
Установка
composer require prozorov/data-locker
Архитектура библиотеки
Библиотека для генерации одноразовых паролей (OTP) состоит из следующих компонентов:
- Локер (Locker) - это основной класс для работы с системой одноразовых паролей (интерфейс библиотеки). Предполагается только работа с этим классом. Все остальные классы в библиотеке являются вспомогательными и прямое взаимодействие приложения с ними не предполагается.
- Репозиторий (Хранилище) - это класс, взаимодействующий с хранилищем (базой данных).
- Конфигурационный класс - это класс, содержащий всю конфигурацию для системы одноразовых паролей.
- Транспортная система - классы, которые будут реализовать доставку сообщений с одноразовым паролем
- Система сообщений - классы сообщений
Использование
Хранилище паролей
Сперва нужно создать адаптер для репозитория одноразовых паролей. Репозиторий - это класс, реализующий интерфейс 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.
prozorov/data-locker 适用场景与选型建议
prozorov/data-locker 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.08k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2020 年 06 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 prozorov/data-locker 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 prozorov/data-locker 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 3.08k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2020-06-25