nextapps / laravel-verification-code
Requires
- php: ^8.1|^8.2|^8.3
- illuminate/database: ^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/notifications: ^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- adamwojs/php-cs-fixer-phpdoc-force-fqcn: ^2.0
- friendsofphp/php-cs-fixer: ^3.0
- orchestra/testbench: ^5.0|^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.1|^10.0
- squizlabs/php_codesniffer: ^3.6
README
此包可以实现通过验证码进行用户认证。
安装
您可以使用 composer 安装此包
composer require wotz/laravel-verification-code
包将自动注册自己。
您可以使用以下命令发布迁移
php artisan vendor:publish --provider="Wotz\VerificationCode\VerificationCodeServiceProvider" --tag="migrations"
发布迁移后,运行迁移
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Wotz\VerificationCode\VerificationCodeServiceProvider" --tag="config"
用法
生成并发送验证码
use Wotz\VerificationCode\VerificationCode; VerificationCode::send($email);
这将生成一个用于用户的验证码。该代码将存储在 verification_codes
表中。然后,将发送一封包含生成代码的电子邮件到匹配给定电子邮件地址的用户。
验证验证码
use Wotz\VerificationCode\VerificationCode; VerificationCode::verify($code, $email);
如果验证码已过期或与用户的电子邮件地址不匹配,则返回 false
。如果有效,则返回 true
并删除该代码。
如果您不想删除代码(在登录流程的不同阶段需要验证相同的代码时),可以传递第三个参数。
use Wotz\VerificationCode\VerificationCode; VerificationCode::verify($code, $email, $deleteAfterVerification);
验证码表清理
由于验证码表可能充满未使用的代码,以下命令将修剪所有给定小时数之前的所有代码。
php artisan verification-code:prune --hours=24
配置设置
长度
此值定义了每个生成验证码的长度。
字符
您可以为生成验证码定义使用哪些字符。默认情况下,某些字符被排除(0, O, I, L),因为它们看起来太相似。
过期秒数
验证码仅在特定时间内有效。您可以定义验证码在多少秒后将过期。
每个可验证的最大代码数
默认情况下,每个可验证的只能有一个有效的验证码。如果您想允许每个可验证的多个活动代码,则可以更改此设置为一个不同的数字(或将设置为 null
,如果您想为每个可验证的提供无限数量的代码)。
自定义通知
如果您想使用自定义通知发送验证码,可以创建自己的通知类,该类应扩展 VerificationCodeCreatedInterface
。确保您不要忘记将验证码传递给邮件。
自定义模型
如果您想使用自定义验证码模型,可以创建自己的验证码类,该类应扩展 VerificationCode
。
队列
如果您的通知是可队列的,您可以定义用于通知的队列。
测试可验证的和测试代码
有时您可能希望允许用户立即登录,而不让他们通过验证码流程。为此,可以将可验证的(例如电子邮件地址)添加到 test_verifiables
数组中。然后您需要定义一个 test_code
。可验证的和测试代码的组合将使用户能够通过。
测试
您可以使用以下命令运行测试
composer test
代码质量检查
composer lint
更新日志
请参阅变更日志获取更多最近更改的信息。
贡献
请参阅贡献指南获取详细信息。
鸣谢
许可证
MIT 许可证(MIT)。请参阅许可证文件获取更多信息。