esyede / hcaptcha-laravel
将 hCaptcha 集成到您的 Laravel 应用程序中。
v1.0.2
2024-06-26 21:50 UTC
Requires
- php: ^7.2|^8.0
- guzzlehttp/guzzle: ^6.2|^7.2
Requires (Dev)
- phpunit/phpunit: ^10.0
README
将 hCaptcha 集成到您的 Laravel 应用程序中。
安装
使用 Composer 安装 Composer
composer require esyede/hcaptcha-laravel
发布配置文件
php artisan vendor:publish --provider="Esyede\Laravel\HCaptcha\HCaptchaServiceProvider"
设置
在 hCaptcha 控制台 注册并添加您的网站以获取网站密钥和密钥。
然后将这些添加到您的 .env
文件中
HCAPTCHA_SITEKEY=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX HCAPTCHA_SECRET=0x0000000000000000000000000000000000000000
用法
显示
要显示小部件
{!! HCaptcha::display() !!}
您还可以在小部件上设置 自定义属性
{!! HCaptcha::display(['data-theme' => 'dark']) !!}
或自定义 CSS 类
{!! HCaptcha::display([ 'class' => $errors->has('email') ? 'is-invalid' : '', ]) !!}
脚本
加载 hCaptcha JavaScript 资源
{!! HCaptcha::script() !!}
您还可以设置 查询参数
{!! HCaptcha::script($locale, $render, $onload, $recaptchacompat) !!}
验证
要验证 hCaptcha 响应,请使用 hcaptcha
规则
$request->validate([ 'h-captcha-response' => ['hcaptcha'], ]);
您可以省略 required
规则,因为它已内部检查。
自定义验证消息
将以下值添加到语言文件夹中的 validation.php
'custom' => [ 'h-captcha-response' => [ 'hcaptcha' => 'Please verify that you are human.', ] ],
隐形验证码
您还可以使用 隐形验证码,此时只有在用户满足挑战标准时才会向用户展示 hCaptcha 挑战。
最简单的方法是将按钮绑定到 hCaptcha
{!! HCaptcha::displayButton() !!}
这将生成一个具有 h-captcha
类和网站密钥的按钮。但您仍需要一个按钮的回调
<script> function onSubmit(token) { document.getElementById('my-form').submit(); } </script>
默认情况下,指定了 onSubmit
作为回调,但您可以轻松地更改此操作(包括按钮的文本)
{!! HCaptcha::displayButton('Submit', ['data-callback' => 'myCustomCallback']) !!}
您还可以设置其他 自定义属性,包括 class
。
不使用 Laravel 的用法
此包也可以不使用 Laravel 使用。以下是如何使用的一个示例
<?php require_once 'vendor/autoload.php'; use Esyede\Laravel\HCaptcha\HCaptcha; $sitekey = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'; $secret = '0x0000000000000000000000000000000000000000'; $guzzleOptions = [ // 'verify' => false, ]; $hCaptcha = new HCaptcha($sitekey, $secret, $guzzleOptions); if (!empty($_POST)) { var_dump($hCaptcha->validate($_POST['h-captcha-response'])); exit; } ?> <form method="POST"> <?php echo $hCaptcha->display() ?> <button type="submit">Submit</button> </form> <?php echo $hCaptcha->script() ?>
许可证
此包在 MIT 许可证 下发布。