c10d/craft-hcaptcha

将hCaptcha验证集成到您的表单中。

安装次数: 3,801

依赖: 1

建议者: 0

安全: 0

星标: 4

关注者: 2

分支: 0

公开问题: 0

类型:craft插件

3.0.1 2024-04-01 20:00 UTC

This package is auto-updated.

Last update: 2024-08-31 00:26:53 UTC


README

将hCAPTCHA验证集成到您的表单中。

要求

此插件需要Craft CMS 3.4或更高版本。

安装

要安装此插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目

     cd /path/to/project
    
  2. 然后告诉Composer加载插件

     composer require c10d/craft-hcaptcha
    
  3. 在控制面板中,转到设置 → 插件,然后点击craft-hcaptcha的“安装”按钮。

配置craft-hcaptcha

  1. 注册hCAPTCHA API密钥.
  2. 打开Craft管理界面并转到设置 → 插件 → Craft hCAPTCHA → 设置。
  3. 添加您的site keysecret key,然后保存。
  4. 将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
}

Cédric Givord提供