Laravel5 OTP 管理器

1.0.0 2020-01-16 13:27 UTC

This package is auto-updated.

Last update: 2024-09-16 23:27:50 UTC


README

Laravel 5 OTP 生成。

该模块生成 OTP 并验证它们。您可以将自己的通知器(如 AWS SNS)插入以将 OTP 发送到各种通道。

提供了一些配置选项

  • 过期持续时间
  • 客户端允许的最大 OTP 数
  • OTP 长度
  • 黑名单客户端

安装

通过 composer

  1. 运行 composer require shawsank/otp
  2. Shawsank\OTP\OTPServiceProvider 添加到您的 config/app.php 文件中的 providers 数组
  3. 运行 composer dump-autoload
  4. 运行 php artisan vendor:publish
  5. 运行 php artisan migrate

完成!

配置选项

该软件包发布 config/otp.php。它有很好的文档。

使用方法

该软件包提供以下辅助工具

  1. 管理器
  2. 生成器
  3. 验证器

您可以使用 Manager 与整个模块交互。它作为完整功能的外包装。然而,您也可以自由地使用其他辅助工具生成和验证 OTP。

生成 OTP

要生成 OTP,请调用 Managergenerate 方法。它接受两个参数:模块和 ID。这两个都是字符串。您可以在这里传递任何内容,但请记住,这个组合将用于验证 OTP。例如,$manager->generate('users', '1') 将返回 'users' 模块和 ID '1' 的组合 OTP。

验证 OTP

要验证,请调用管理器的 isValid()。它将返回基于 OTP 有效性的布尔值。验证确保模块 + ID 未被阻止,并且令牌未过期。

阻止和解锁

每当模块 + ID 超过允许的最大(非过期)OTP 数时,它们将被阻止。您将无法为该模块 + ID 组合生成更多 OTP。目前,没有接口来解锁客户端。您需要手动从 otp_blacklist 表中删除条目。请检查 TODO 以查看此功能的进度和想法。

通知

管理器提供 notify() 方法,该方法接受任何实现 Notifier 接口的实现。您可以按照您的业务逻辑实现此接口。

您可能在验证过程完成后调用管理器的 useOtp()。如果不调用此方法,OTP 将保持有效,直到达到其过期限制。

贡献

欢迎所有贡献!创建分支,创建 PR,讨论!

TODO

  1. 添加生成数字/字母数字代码的选项
  2. 提供解锁客户端的方法
  3. 提供通知器的示例实现
  4. 找到从数据库中删除过期的 OTP 的更好的方法