silverstripe/recaptcha

此包已被废弃,不再维护。未建议替代包。
此包的最新版本(3.0.0-alpha1)没有可用的许可信息。

提供了一个表单字段,允许表单通过给用户一个解密图片的挑战来验证非机器人提交。

安装: 96,738

依赖: 1

建议者: 0

安全: 0

星星: 25

观察者: 3

分支: 57

开放问题: 14

类型:silverstripe-vendormodule

3.0.0-alpha1 2018-01-12 02:33 UTC

This package is auto-updated.

Last update: 2020-01-28 01:04:39 UTC


README

Build Status

此模块不再受支持。请使用 UndefinedOffset/silverstripe-nocaptcha 代替

介绍

提供了一个 FormField,允许表单使用 Google 的 reCAPTCHA v2 服务验证非机器人提交。

为了使用 Google 的新 Invisible reCAPTCHA 服务,请使用 undefinedoffset/silverstripe-nocaptcha 模块。此模块不适用于 reCAPTCHA v3(见 理由

要求

  • SilverStripe 框架 4.0 或更高版本
  • curl PHP 模块
  • 需要 spamprotection 模块

安装

  • recaptcha 目录复制到您的 SilverStripe 主网站根目录
  • 运行 ?flush=1

这应该放在您的 mysite/_config/recaptcha.yml 中。您可以在 https://www.google.com/recaptcha 获取免费 API 密钥

SilverStripe\Recaptcha\RecaptchaField:
  public_api_key: "your-site-key"
  private_api_key: "your-secret-key"

如果网站需要代理服务器进行出站流量,则可以在您的 mysite/_config/recaptcha.yml 中设置以下附加选项。

  proxy_server: "proxy_address"
  proxy_auth: "username:password"

要使用 noscript 回退方法,请在您的 yml 中添加密钥 noscript_enabled: true

要更改语言,将其添加到您的 yml 选项数组中

  options: 
    hl: NL
    theme: dark
    type: audio
    size: compact

有关所有可用参数,请参阅 https://developers.google.com/recaptcha/docs/display#render_param

用法

作为独立字段

如果您只想使用 reCAPTCHA 字段,您可以简单地将它包含为表单中的一个字段。

$recaptchaField = new RecaptchaField('MyCaptcha');
$recaptchaField->options = array('theme' => 'light'); // optional

有关更多配置选项,请参阅 reCAPTCHA 文档

与 spamprotection 模块集成

这需要安装 spamprotection 模块,有关详细信息,请参阅其文档。您可以使用此字段保护您网站上的任何表单,包括 [[:modules:blog]] 模块中的用户评论。

mysite/_config/spamprotection.yml 中的配置示例

---
name: spamprotection
---
SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension:
  default_spam_protector: SilverStripe\Recaptcha\RecaptchaProtector

然后,一旦设置好此配置,您需要按照spamprotection页面上的说明添加垃圾邮件防护字段。

已知问题

关于页面文档类型XHTML的问题

reCAPTCHA在页面文档类型为XHTML时无法正常工作。API返回的JavaScript使用了“document.write”,这在XHTML中不受支持。一种解决方案是始终使用模块的无脚本版本(修改RecaptchaField.php中的相关行),或者将网页的文档类型切换到HTML 4。请参阅:https://w3schools.org.cn/tags/tag_DOCTYPE.asp