laravel-hcaptcha / hcaptcha
Requires
- php: ^7.4
- ext-curl: *
- ext-json: *
- arcanedev/php-html: ^4.0
- arcanedev/support: ^7.0
- psr/http-message: ^1.0
Requires (Dev)
- orchestra/testbench: ^5.0
- phpunit/phpunit: ^8.5|^9.0
This package is auto-updated.
Last update: 2024-09-05 23:22:54 UTC
README
由shirshak55提供
请等待v1版本的使用。目前处于开发中。如果一切顺利,本月底前应该发布。
什么是hCaptcha?
hCaptcha是一种类似于CAPTCHA的系统,旨在确认计算机用户是人类。hCaptcha背后的团队拥有数十年的软件和机器学习专业知识,他们构建和运营可大规模扩展的系统来应对当今最困难的问题。
功能
- 框架无关的包。
- 良好支持
- 易于设置和配置。
- 良好的文档和IDE友好。
- 经过充分测试,代码质量高。
- 支持Laravel
7.x
。 - PSR-7支持(ServerRequest验证)。
- 用❤️和☕制作。
支持
像Spatie一样,我只支持php 7.4以上和Laravel版本7以上的版本。
步骤
- 安装和设置
要使用hcaptcha,您需要有一个站点密钥
和一个密钥
。点击这里设置域名并获取密钥。
站点密钥
用于小部件,而密钥
用于验证我们从hcaptcha收到的响应。
有关更多详细信息,请参阅官方文档。
您可以通过运行此命令composer require laravel-hcaptcha/hcaptcha
使用Composer安装此包。
注意:如果您使用的是Laravel
>= v5.5
,则包将自动注册,因此您可以跳过此部分。
安装包后,您可以在config/app.php
文件中的providers
数组中注册服务提供程序。
'providers' => [ ... LaravelHcaptcha\Hcaptcha\HCaptchaServiceProvider::class, ],
- 配置
// Edit your .env file by adding this two lines and fill it with your keys.
HCAPTCHA_SECRET=your-secret-key
HCAPTCHA_SITEKEY=your-site-key
在Laravel中,您可以发布(通常不需要)
运行php artisan vendor:publish --provider="LaravelHCaptcha\Hcaptcha\HcaptchaServiceProvider"
以发布配置文件。
编辑config/hcaptcha.php
文件中的secret
和sitekey
值:
vanilla php中的示例
<?php require_once(__DIR__.'/vendor/autoload.php'); use LaravelHcaptcha\HCaptcha\HCaptcha; $secret = 'your-secret-key'; $sitekey = 'your-site-key'; $captcha = new HCaptcha($secret, $sitekey); if ($_POST) { // You need to check also if the $_POST['g-recaptcha-response'] is not empty. $response = $captcha->verify($_POST['h-recaptcha-response'] ?? null); echo $response->isSuccess() ? 'Yay ! You are a human.' : 'No ! You are a robot.'; exit(); } ?> <form action="?" method="POST"> <?php echo $captcha->display(); ?> <button type="submit">Submit</button> </form> <?php // At the bottom, before the </body> (If you're a good programmer and you listen to your mother) echo $captcha->script(); ?>
Laravel
视图
使用以下示例之一将hcaptcha插入您的表单中
<form ...> // Other inputs... {!! hcaptcha()->display()->toHtml() !!} <input type </form> {{ hcaptcha()->script()->toHtml(); }}
后端(控制器或项目中的某个地方 ...)
要验证我们从Google收到的响应,您可以在验证器中使用captcha
规则
use LaravelHCaptcha\HCaptcha\CaptchaRule; $inputs = request()->all(); $rules = [ // Other validation rules... 'h-recaptcha-response' => ['required', new CaptchaRule], ]; $messages = [ 'h-recaptcha-response.required' => 'Your custom validation message.', 'h-recaptcha-response.captcha' => 'Your custom validation message.', ]; $validator = Validator::make($inputs, $rules, $messages); if ($validator->fails()) { $errors = $validator->messages(); var_dump($errors->first('g-recaptcha-response')); // Redirect back or throw an error }
贡献
欢迎任何想法。请随时提交任何问题或拉取请求,请检查贡献指南。
安全
如果您发现任何安全相关的问题,请通过电子邮件shirshak55@gmail.com而不是使用问题跟踪器。