c10d / craft-hcaptcha
将hCaptcha验证集成到您的表单中。
3.0.1
2024-04-01 20:00 UTC
Requires
- php: ^8.2
- craftcms/cms: ^5.0.0
README
将hCAPTCHA验证集成到您的表单中。
要求
此插件需要Craft CMS 3.4或更高版本。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
然后告诉Composer加载插件
composer require c10d/craft-hcaptcha
-
在控制面板中,转到设置 → 插件,然后点击craft-hcaptcha的“安装”按钮。
配置craft-hcaptcha
- 注册hCAPTCHA API密钥.
- 打开Craft管理界面并转到设置 → 插件 → Craft hCAPTCHA → 设置。
- 添加您的
site key
和secret key
,然后保存。 - 将hCAPTCHA模板标签和js添加到您的表单中。
使用craft-hcaptcha
在您的模板中,只需添加以下twig代码片段以渲染hCAPTCHA iframe
{{ craft.hcaptcha.render() }}
或者,您也可以更改容器的id,并设置一些选项
{{ craft.hcaptcha.render('hcap', { 'theme': 'dark' }) }}
如果您正在使用模态框或出于任何原因,hcaptcha div在页面加载时不在DOM中,您可以在块变为可见时设置一个触发器(js文件应该已经加载)
{{ craft.hcaptcha.render('hcaptcha-1', { 'size': 'compact' }) }} <style onload="hcaptcha.render('hcaptcha-1');"></style>
您甚至可以自己创建块,并且只获取site key变量
<div class="h-captcha" data-sitekey="{{ craft.hcaptcha.sitekey() }}"></div> <script src="https://hcaptcha.com/1/api.js" async defer></script>
如果您想了解可用的选项,请参阅hCAPTCHA文档。
注意:在此步骤完成后,如果您正在使用CraftCMS 联系表单插件,或者您正在使用craft-hcaptcha验证公开用户注册,只需在插件设置中激活相应的切换即可!(提交时将自动验证hcaptcha)
验证hCAPTCHA
在服务器端,您可以使用此方法验证是否完成了hCAPTCHA
use c10d\crafthcaptcha\CraftHcaptcha; // [ ... ] $captcha = Craft::$app->getRequest()->getParam('h-captcha-response'); $isValid = CraftHcaptcha::$plugin->hcaptcha->verify($captcha); if (!$isValid) { // ERROR: you can push an error here }