anakadote/statamic-recaptcha

1.0.14 2024-02-13 17:14 UTC

This package is auto-updated.

Last update: 2024-09-13 18:41:06 UTC


README

Statamic reCAPTCHA 是一个 Statamic 插件,它将 Google reCAPTCHA v3v2 集成到您的网页表单中。

注意:Statamic reCAPTCHA v3 的工作方式有两种:1) 在页面加载时,reCAPTCHA 将确定用户是否可能是机器人,如果是,则所有网页表单将从页面中删除,并替换为一条警告信息(可以更改)。2) reCAPTCHA 也在表单提交时工作,如果确定用户可能是机器人,则返回错误信息(可以更改)。

安装

从您的项目根目录运行以下命令

composer require anakadote/statamic-recaptcha

发布资产和配置文件(到 config/recaptcha.php

php artisan vendor:publish --tag=statamic-recaptcha

在发布的 config/recaptcha.php 文件中设置您的 reCAPTCHA 版本(默认设置为版本 3)

...
'recaptcha_version' => 3,

将您的 reCAPTCHA 密钥 添加到您的 .env 文件中

# reCAPTCHA v3
RECAPTCHA_V3_SITE_KEY=[YOUR KEY HERE]
RECAPTCHA_V3_SECRET_KEY=[YOUR KEY HERE]
RECAPTCHA_V3_THRESHOLD=.5

# OR

# reCAPTCHA v2
RECAPTCHA_V2_SITE_KEY=[YOUR KEY HERE]
RECAPTCHA_V2_SECRET_KEY=[YOUR KEY HERE]

注意:如果您使用 reCAPTCHA v3,则还需要在 .env 中设置 RECAPTCHA_V3_THRESHOLD 值,如上所示。默认已为您设置了一个合理的值 0.5。此值用于确定提交是否应被视为垃圾邮件。reCAPTCHA v3 返回一个分数(1.0 非常可能是良好的交互,0.0 非常可能是机器人),因此,如果您的 RECAPTCHA_V3_THRESHOLD 值为 0.5,则任何 reCAPTCHA 评分低于 0.5 的提交将被视为垃圾邮件,并且不会保存。例如,为了更加宽松,您可能希望将 RECAPTCHA_V3_THRESHOLD 值设置为 0.3

将以下标签添加到您的主布局中,在关闭 </body> 标签之前

{{ recaptcha }}

例如

        {{ recaptcha }}
    </body>
</html>

reCAPTCHA 服务条款

如果您使用 reCAPTCHA v3 或 reCAPTCHA v2 无视可见性,您已同意在 reCAPTCHA 网站上明确通知访客您的网站已实施 reCAPTCHA,并且他们使用 reCAPTCHA 受 Google 隐私政策使用条款 的约束。

您可以使用以下标签在您的网站上输出一些默认语言。例如,在表单旁边或网站页脚(语言可以在您发布的配置文件中更改)中包含它

{{ recaptcha:terms }}

对于 reCAPTCHA v3,就是这样! 对于 v2,请继续阅读...

reCAPTCHA v2 - 需要额外的步骤

复选框验证码(v2)

对于 reCAPTCHA v2 的复选框版本,您需要将以下标签添加到您希望复选框验证码出现的每个表单中

{{ recaptcha:checkbox }}

例如

{{ form:contact_us }}
    <label for="name">Name</label>
    <input type="text" name="name" id="name" required>

    {{ recaptcha:checkbox }}

    <button type="submit">Submit</button>
{{ /form:contact_us }}

无视可见性验证码(v2)

对于 reCAPTCHA v2 的无视可见性版本,您只需要将 published config/recaptcha.php 文件中的 recaptcha_v2.size 配置值设置为 "invisible"

...
'recaptcha_v2' => [
    'site_key' => env('RECAPTCHA_V2_SITE_KEY'),
    'secret_key' => env('RECAPTCHA_V2_SECRET_KEY'),
    'size' => 'invisible', // Set this to "invisible" to enable the invisible version of reCAPTCHA v2
],

表单排除

排除 表单从 reCAPTCHA 验证中,将 CSS 类 "nocaptcha" 添加到表单元素,并将其句柄添加到发布的 config/recaptcha.php 文件中的 "exclusions" 数组中。例如

{{ form:contact_us class="nocaptcha" }}
# config/recaptcha.php
'exclusions' => [
    'contact_us',
],