wotz / 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
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件。