mcaskill / charcoal-recaptcha
Charcoal 的 Google reCAPTCHA
v0.5.0
2018-05-23 15:13 UTC
Requires
- php: >=5.6.0 || >=7.0
- google/recaptcha: ^1.1
- locomotivemtl/charcoal-config: ~0.8
- pimple/pimple: ^3.0
- psr/http-message: ^1.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^5.7 || ^6.5
- slim/slim: ^3.4
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-22 02:16:47 UTC
README
为 Charcoal 提供的 Google reCAPTCHA 客户端库 服务提供者。
此包可以作为 PSR-7 中间件或作为服务层的对象使用。
安装
composer require mcaskill/charcoal-recaptcha
查看 composer.json
以了解依赖项。
包含内容
Charcoal\ReCaptcha\CaptchaServiceProvider
: Pimple 服务提供者。Charcoal\ReCaptcha\CaptchaConfig
: 配置 CAPTCHA 服务。Charcoal\ReCaptcha\CaptchaAwareTrait
: 与 CAPTCHA 服务接口的便捷特性。Charcoal\ReCaptcha\Captcha
: 处理 reCAPTCHA 客户端的服务的实例。Charcoal\ReCaptcha\LocalizedCaptcha
: 具备 翻译器感知 的服务的变体。
使用方法
use Charcoal\ReCaptcha\Captcha; $captcha = new Captcha([ 'config' => [ 'public_key' => '…', 'private_key' => '…', ] ]); // As middleware $app->post('/signup', '…')->add($captcha); // As standalone, with direct user input $captcha->verify($input, $ip); // With a PSR-7 request $captcha->verifyRequest($request); // Display the widget in your views echo $captcha->display( [ 'data-theme' => 'dark', 'data-type' => 'audio', ], [ 'hl' => 'fr' ] );
默认情况下,Captcha
适配器将延迟 ReCaptcha
的实例化,直到首次验证请求。
自定义 ReCaptcha 类
可以使用 client_class
选项替换 ReCaptcha
类。
use Charcoal\ReCaptcha\Captcha; use MyApp\ MyCustomReCaptcha; $captcha = new Captcha([ 'config' => [ 'public_key' => '…', 'private_key' => '…', ], 'client_class' => MyCustomReCaptcha::class ]);
自定义 ReCaptcha 实例
可以使用 client
选项分配 ReCaptcha
类的实例。
use Charcoal\ReCaptcha\Captcha; use ReCaptcha\ReCaptcha; use ReCaptcha\RequestMethod\CurlPost; $client = new ReCaptcha('…', new CurlPost()); $captcha = new Captcha([ 'config' => [ 'public_key' => '…', 'private_key' => '…', ], 'client' => $client ]);
服务提供者
如果使用 CaptchaServiceProvider
,则提供以下内容。
参数
- charcoal/captcha/config:
CaptchaConfig
的实例。
服务
- charcoal/captcha:
Captcha
的实例。
注册
通过 Charcoal 配置文件
{ "apis": { "google": { "recaptcha": { "public_key": "…", "private_key": "…" } }, }, "service_providers": { "charcoal/re-captcha/captcha": {} } }
通过 PHP
$container->register(new Charcoal\ReCaptcha\CaptchaServiceProvider(), [ 'charcoal/captcha/config' => [ 'public_key' => '…', 'private_key' => '…' ] ]);
致谢
此包灵感来源于