zed-lam / captcha
Hyperf CAPTCHA 包。
dev-master
2024-04-15 04:20 UTC
Requires
- php: >=8.1
- ext-fileinfo: *
- ext-imagick: *
- ext-swoole: >=5.0
- hyperf-ext/encryption: 3.1.x-dev
- hyperf/cache: ~3.1.0
- hyperf/di: ~3.1.0
- hyperf/framework: ~3.1.0
- hyperf/validation: ~3.1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- hyperf/testing: ~3.1.0
- phpstan/phpstan: ^1.0
- swoole/ide-helper: ^5.0
This package is not auto-updated.
Last update: 2024-10-01 04:26:50 UTC
README
安装
composer require zed-lam/captcha
发布配置
php bin/hyperf.php vendor:publish hyperf-ext/captcha
字体文件默认发布到
<root>/storage/fonts目录。
组件依赖 hyperf-ext/encryption 组件用于加密和解密 key,依赖 hyperf/cache 组件暂存使用过的 key,您需要发布这些组件的配置:
php bin/hyperf.php vendor:publish hyperf-ext/encryption
php bin/hyperf.php vendor:publish hyperf/cache
使用
use Hyperf\Context\ApplicationContext;
use HyperfExt\Captcha\CaptchaFactory;
$captchaFactory = ApplicationContext::getContainer()->get(CaptchaFactory::class);
// 生成
$captcha = $captchaFactory->create();
$response = [
'key' => $captcha->getKey(),
'blob' => $captcha->getBlob()->toDataUrl(),
'ttl' => $captcha->getTtl(),
];
// 验证
$captchaFactory->validate($key, $text);
验证器
您可以将 key 与用户输入通过逗号 , 连接后传递给 captcha 验证规则来自动完成验证,验证成功的 key 将自动暂存到缓存中,直到该 key 过期。