shawsank / otp
Laravel5 OTP 管理器
Requires
- php: >=5.4
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
- 运行
composer require shawsank/otp
- 将
Shawsank\OTP\OTPServiceProvider
添加到您的config/app.php
文件中的 providers 数组 - 运行
composer dump-autoload
- 运行
php artisan vendor:publish
- 运行
php artisan migrate
完成!
配置选项
该软件包发布 config/otp.php
。它有很好的文档。
使用方法
该软件包提供以下辅助工具
管理器
生成器
验证器
您可以使用 Manager
与整个模块交互。它作为完整功能的外包装。然而,您也可以自由地使用其他辅助工具生成和验证 OTP。
生成 OTP
要生成 OTP,请调用 Manager
的 generate
方法。它接受两个参数:模块和 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
- 添加生成数字/字母数字代码的选项
- 提供解锁客户端的方法
- 提供通知器的示例实现
- 找到从数据库中删除过期的 OTP 的更好的方法