https://github.com/hyperf-ext/captcha
Hyperf CAPTCHA 组件。
https://github.com/hyperf-ext/captcha
captcha hyperf php
Last synced: 10 months ago
JSON representation
Hyperf CAPTCHA 组件。
- Host: GitHub
- URL: https://github.com/hyperf-ext/captcha
- Owner: hyperf-ext
- License: mit
- Created: 2020-12-09T22:16:42.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-07-30T18:31:58.000Z (over 4 years ago)
- Last Synced: 2025-03-26T09:11:53.283Z (11 months ago)
- Topics: captcha, hyperf, php
- Language: PHP
- Homepage:
- Size: 757 KB
- Stars: 6
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hyperf CAPTCHA 组件
## 安装
```shell
composer require hyperf-ext/captcha
```
## 发布配置
```shell
php bin/hyperf.php vendor:publish hyperf-ext/captcha
```
> 字体文件默认发布到 `/storage/fonts` 目录。
组件依赖 `hyperf-ext/encryption` 组件加解密 `key`,依赖 `hyperf/cache` 组件暂存使用过的 `key`,您需要发布这些组件的配置:
```shell
php bin/hyperf.php vendor:publish hyperf-ext/encryption
php bin/hyperf.php vendor:publish hyperf/cache
```
## 使用
```php
use Hyperf\Utils\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` 过期。