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

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

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


当前回答

最新更新2022 默认情况下不支持本地主机域。如果您希望继续支持它们进行开发,可以将它们添加到站点密钥支持的域列表中。

https://developers.google.com/recaptcha/docs/faq#im-getting-an-error-localhost-is-not-in-the-list-of-supported-domains.-what-should-i-do

我添加了“localhost”,它工作得很好。

OR

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

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

参考

其他回答

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

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

更新

原来的答案不再正确了。开发者指南现在声明:

"如果您想使用"localhost"进行开发,必须将其添加到域列表中。"

这将只在您使用127.0.0.1/…访问localhost时有效。而不是localhost/....

原答案保存在下面。


根据reCAPTCHA开发者指南:

默认情况下不再支持localhost域。如果您希望继续支持它们进行开发,您可以将它们添加到站点密钥支持的域列表中。转到管理控制台更新受支持的域列表。我们建议在开发和生产中使用单独的密钥,并且不允许在生产站点中使用localhost密钥。”

换句话说,就是使用相同的键。

截至2021年的今天,谷歌reCAPTCHA企业版控制台包括一个验证检查,不允许将localhost添加到允许的域列表中。为了解决这个问题(显然只是为了开发/测试的目的),我做了以下工作:

在hosts文件中创建一个将域解析为本地主机的条目 127.0.0.1 whatever-your-domain-will-be.com 测试应用程序不是通过导航到localhost,而是通过导航到域。

我的本地服务器/应用程序通常在http://localhost:4000上运行,所以导航到http://whatever-your-domain-will-be.com:4000就可以了。

一旦部署或测试完成,就很容易删除hosts文件条目,并且在reCAPTCHA允许的域列表中没有残留的垃圾。

谷歌最近停止默认允许本地主机(正如@Artur Cesar De Melo提到的那样)。这是他们的常见问题:

我得到一个错误“Localhost不在支持的域列表中”。这个之前还能用,我该怎么办? 默认情况下不再支持本地主机域。如果您希望继续支持它们进行开发,您可以将它们添加到站点密钥支持的域列表中。转到管理控制台更新受支持的域列表。我们建议为开发和生产使用单独的密钥,并且不允许在您的生产站点密钥上使用localhost。

1:为您的开发环境创建一个单独的键

2:将“127.0.0.1”添加到允许创建的域列表中

3:保存更改并允许最多30分钟的更改生效

reCAPTCHA在localhost/上无效。

使用127.0.0.1/代替localhost/。