我正在使用PHP开发一个网站,我想在其中一个会话中进行人工验证。对于开发,我最初在本地运行系统,当它准备好时,我将把它放在某个域中。
在reCAPTCHA网站上说插件只能在给定的域(和子域)上工作。
有没有办法在本地主机上使用reCAPTCHA插件?
我正在使用PHP开发一个网站,我想在其中一个会话中进行人工验证。对于开发,我最初在本地运行系统,当它准备好时,我将把它放在某个域中。
在reCAPTCHA网站上说插件只能在给定的域(和子域)上工作。
有没有办法在本地主机上使用reCAPTCHA插件?
当前回答
截至2021年1月2日,谷歌在本文中发布了这两个密钥进行测试。
我想用reCAPTCHA运行自动测试。我该怎么办? 对于reCAPTCHA v3,为测试环境创建一个单独的密钥。分数可能不准确,因为reCAPTCHA v3依赖于看到真实的流量。
对于reCAPTCHA v2,使用以下测试键。您将始终得到No CAPTCHA和所有验证请求将通过。
Site key: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
Secret key: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
reCAPTCHA小部件将显示一条警告消息,以确保不存在 用于生产流量。
我第一次使用密钥时,生成的电子邮件就变成了垃圾邮件。
其他回答
迅速的回答
Do get requests on Recaptcha in your backend rather than frontend
截至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允许的域列表中没有残留的垃圾。
删除当前的reCAPTCHA密钥,注册新的密钥,并使用这些域设置您的密钥设置:
127.0.0.1
localhost
你可以写“localhost”或“127.0.0.1”,但URL必须相同。
例如:谷歌domain Add -> localhost URL => localhost/login.php
例如:谷歌域Add -> 127.0.0.1 URL => 127.0.0.1/login.php
这可以帮助所有在本地主机上使用reCAPTCHA时遇到问题的用户。谷歌确实说“默认情况下,所有密钥都在'localhost'(或'127.0.0.1')上工作”,但实际上在localhost上使用reCAPTCHA可能会导致问题。在我的例子中,我使用安全令牌解决了这个问题。
我在这里发布了一个PHP的工作解决方案。