fleetfoot / otp
Laravel5 OTP 管理器
This package is not auto-updated.
Last update: 2024-09-29 01:38:02 UTC
README
Laravel 5 OTP 生成
该模块生成 OTP 并验证它们。您可以将自己的通知器(例如 AWS SNS)插入以将 OTP 发送到各种渠道。
提供了一些配置选项
- 过期持续时间
- 客户端在过期时间内允许的最大 OTP 数量
- OTP 长度
- 黑名单客户端
- OTP 默认长度
- 允许的验证 OTP 尝试次数
- 验证 OTP 尝试次数计时
安装
通过 composer
- 运行
composer require fleetfoot/otp - 将
Fleetfoot\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 长度,则可以设置可选的第三个参数 $manager->generate('users', '1', 6)
验证 OTP
要验证,请调用管理器的 isValid()。它将根据 OTP 的有效性返回布尔值。验证确保模块 + ID 没有被阻止,令牌未过期,并且验证尝试没有超过限制
阻止和解锁
您将无法为阻止的模块 + ID 组合验证 OTP 或生成更多 OTP。
要阻止,请使用:$manager->block('users', '1')
要解锁,请使用:$manager->unblock('users', '1')
通知
管理器提供了一个接受任何 Notifier 接口实现的 notify() 方法。您可以按照您的业务逻辑实现此接口。
验证过程完成后,您可能想调用管理器的 useOtp()。如果您不调用此方法,OTP 将保持有效,直到它达到其过期限制。
清理过期的 OTP 和验证尝试
您可以通过运行以下命令清理过期的 OTP 和验证尝试:php artisan otp:clean
您可以在计划中这样做:$schedule->command('otp:clean')->daily();
贡献
欢迎所有贡献!创建分支,创建 PR,讨论!
待办事项
- 添加数字/字母代码生成的选项
- 提供通知器的示例实现
- 找到从数据库中删除过期的 OTP 的更好方法