anakadote / statamic-recaptcha
README
Statamic reCAPTCHA 是一个 Statamic 插件,它将 Google reCAPTCHA v3 或 v2 集成到您的网页表单中。
注意: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', ],