我正在使用PHP开发一个网站,我想在其中一个会话中进行人工验证。对于开发,我最初在本地运行系统,当它准备好时,我将把它放在某个域中。

在reCAPTCHA网站上说插件只能在给定的域(和子域)上工作。

有没有办法在本地主机上使用reCAPTCHA插件?


当前回答

这可以帮助所有在本地主机上使用reCAPTCHA时遇到问题的用户。谷歌确实说“默认情况下,所有密钥都在'localhost'(或'127.0.0.1')上工作”,但实际上在localhost上使用reCAPTCHA可能会导致问题。在我的例子中,我使用安全令牌解决了这个问题。

我在这里发布了一个PHP的工作解决方案。

其他回答

我最近正在创建一个涉及reCAPTCHA v2的网站,我需要在我的本地主机上进行自动化测试。我没有向reCAPTCHA管理门户添加任何IP地址或本地主机。

遵循以下步骤

登录到reCAPTCHA管理站点。截图 定位关键设置 点击高级设置 在“域名验证”下,取消选中“验证reCAPTCHA解决方案的来源”复选框。此选项用于验证来自上述列出的域之一的请求。 请注意,如果禁用,则在验证解决方案时需要检查服务器上的主机名。


我创建了一个新密钥,禁用了它,并使用这个密钥在localhost中进行测试。

这是一个示例页面,它为注释实现了reCAPTCHA。

根据谷歌的reCAPTCHA文档

默认情况下不再支持本地主机域。如果你愿意 继续支持他们的发展,你可以将他们添加到列表中 您的站点密钥支持的域。转到管理控制台 更新受支持的域列表。我们建议使用单独的钥匙 用于开发和生产,并且不允许在您的 生产现场密钥

这招对我很管用:

摘自reCAPTCHA文档:

使用以下测试键,您将始终得到No CAPTCHA和所有 验证请求将通过。 网址:6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI 密钥:6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe reCAPTCHA小部件将显示一条警告消息,声称它是 仅作测试用途。请不要用这些钥匙 生产流量。

出于测试目的,如果您想在localhost上测试包含reCAPTCHA的web页面,则通过管理控制台2:https://www.google.com/recaptcha/admin将localhost添加到域列表中。*建议为localhost创建一个单独的站点密钥。

管理控制台截图

验证码输出

截至2021年1月2日,谷歌在本文中发布了这两个密钥进行测试。

我想用reCAPTCHA运行自动测试。我该怎么办? 对于reCAPTCHA v3,为测试环境创建一个单独的密钥。分数可能不准确,因为reCAPTCHA v3依赖于看到真实的流量。

对于reCAPTCHA v2,使用以下测试键。您将始终得到No CAPTCHA和所有验证请求将通过。

Site key: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
Secret key: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

reCAPTCHA小部件将显示一条警告消息,以确保不存在 用于生产流量。

我第一次使用密钥时,生成的电子邮件就变成了垃圾邮件。