buzz / laravel-h-captcha
Laravel 中的 hCaptcha
v1.0.5
2024-03-04 11:23 UTC
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: 6.*|7.*
- illuminate/support: 5.*|6.*|7.*|8.*|9.*|10.*|11.*
README
特性
-
支持 Laravel 5/6/7/8/9/10
-
页面上的多个验证码
-
重置验证码
-
自动发现服务提供者
-
自定义请求方法
-
使用不同的密钥
-
运行时动态选项
安装
将以下行添加到 composer.json
的 require
部分
{ "require": { "buzz/laravel-h-captcha": "1.*" } }
或者
使用 composer 安装此包
composer require buzz/laravel-h-captcha
使用 composer update
更新包或者使用 composer install
安装。
设置
支持 Laravel >=5.5 的自动发现
将 ServiceProvider 添加到 config/app.php
文件中的 providers
数组。
'Buzz\LaravelHCaptcha\CaptchaServiceProvider',
发布配置
php artisan vendor:publish --provider="Buzz\LaravelHCaptcha\CaptchaServiceProvider"
自定义 HTTP 客户端
编辑 config/captcha.php
文件中的 http_client
文件 config/captcha.php
<?php /* * Secret key and Site key get on https://dashboard.hcaptcha.com/sites * */ return [ 'secret' => env('CAPTCHA_SECRET', 'default_secret'), 'sitekey' => env('CAPTCHA_SITEKEY', 'default_sitekey'), // \GuzzleHttp\Client used is the default client 'http_client' => \Buzz\LaravelHCaptcha\HttpClient::class, 'options' => [ 'multiple' => false, 'lang' => app()->getLocale(), ], 'attributes' => [ 'theme' => 'light' ], ];
配置
将 CAPTCHA_SECRET
和 CAPTCHA_SITEKEY
添加到 .env 文件中
CAPTCHA_SECRET=[secret-key]
CAPTCHA_SITEKEY=[site-key]
用法
视图示例
在 示例仓库 中获取示例
显示 hCaptcha
{!! app('captcha')->display($attributes) !!}
或者使用 Facade: 将 'Captcha' => '\Buzz\LaravelHCaptcha\CaptchaFacade',
添加到 config/app.php
文件中的 aliases
数组,并在模板中使用
{!! Captcha::display($attributes) !!}
或者使用表单
{!! Form::captcha($attributes) !!}
支持自定义语言
{!! app('captcha')->display($attributes = [], $options = ['lang'=> 'vi']) !!}
使用
// element attributes $attributes = [ 'data-theme' => 'dark', 'data-type' => 'audio', ];
// package options $options = [ 'data-theme' => 'dark', 'data-type' => 'audio', ];
有关 hCaptcha 文档的更多信息,请访问 hCaptcha 文档
请帮助我为此内容编写 README
验证
将 'h-captcha-response' => 'required|captcha'
添加到规则数组。
use Validator; use Illuminate\Support\Facades\Input; $validate = Validator::make(Input::all(), [ 'h-captcha-response' => 'required|captcha' ]);
测试
当使用 Laravel 测试功能时,您需要模拟 captcha 表单元素的响应。对于涉及 captcha 的任何表单测试,您然后可以模拟 facade 的行为
// Prevent validation error on captcha CaptchaFacade::shouldReceive('verify') ->andReturn(true); // Provide hidden input for your 'required' validation CaptchaFacade::shouldReceive('display') ->andReturn('<input type="hidden" name="h-captcha-response" value="1" />'); // Add these when testing multiple captchas on a single page CaptchaFacade::shouldReceive('displayJs'); CaptchaFacade::shouldReceive('displayMultiple'); CaptchaFacade::shouldReceive('multiple');