承接 prozorov/data-locker 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

prozorov/data-locker

Composer 安装命令:

composer require prozorov/data-locker

包简介

README 文档

README

Scrutinizer Code Quality Code Coverage Build Status Code Intelligence Status

Установка

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 prozorov/data-locker 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 3.08k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2020-06-25