在本地主机上使用reCAPTCHA

420

我正在使用PHP开发网站,想在其中一个会话中进行人类验证。在开发过程中,我最初在本地运行系统,当准备好之后,我将把它放在某个域名上。

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

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


1
如果事后添加了本地主机,请清除Cookie。 - Mike Flynn
26个回答

6

6

reCAPTCHA无法在localhost/上工作。

请改用127.0.0.1/代替localhost/


1
这个答案与被接受的答案有何不同? - smottt
1
这是已接受版本的简化版。 在已接受版本中,两个答案都是不正确的。 对于1)您不需要将localhost添加到接受域列表中。 对于2)它不能与localhost一起使用。 - alianjum0
1
2021年5月: 在名称或地址后不要添加任何字符,否则谷歌将会抛出错误The following domain is invalid: 127.0.0.1/. A valid domain requires a host and must not include any protocol, path, port, query or fragment. - Dexter

5
根据Google的reCAPTCHA文档,默认不再支持localhost域。如果您希望继续为开发环境提供支持,则可以将其添加到站点密钥的受支持域列表中。请前往管理控制台更新您的受支持域列表。我们建议为开发和生产使用不同的密钥,并在生产站点密钥上不允许localhost。

3

localhost现在可以使用了。不过,请记住,添加localhost到域名列表后,需要等待最多30分钟才能生效(根据域名列表中所显示的帮助提示)。


1
截至2021年,Google reCAPTCHA企业版控制台包括一项验证检查,不允许将“localhost”添加到允许域名列表中。为了解决这个问题(仅用于开发/测试目的),我采用以下方法:
  1. Create an entry in your hosts file that resolves your domain to your localhost

    127.0.0.1    whatever-your-domain-will-be.com
    
  2. Test your application not by navigating to localhost, but rather by navigating to your domain.

我的本地服务器/应用程序通常在http://localhost:4000上运行,因此导航到http://whatever-your-domain-will-be.com:4000就可以了。
一旦部署或测试完成,很容易删除hosts文件条目,并且在reCAPTCHA允许的域列表中没有任何残留的垃圾。

如果该网站已经在该域名上运行,而且您不想一直更改主机文件,只需使用子域,例如 127.0.0.1 local.whatever-your-domain-will-be.com.com - T3rm1

1

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

按照以下步骤操作:

  1. 登录reCAPTCHA管理网站。屏幕截图

  2. 找到密钥设置

  3. 点击高级设置

  4. 域名验证下,取消选中验证reCAPTCHA解决方案来源复选框。此选项用于验证来自上述列出的域之一的请求。

    请注意,如果禁用,则在验证解决方案时需要检查服务器上的主机名。


我创建了一个新的密钥,禁用了这个密钥,并在本地主机上使用了这个密钥进行测试。
这是一个实现了评论 reCAPTCHA 的示例页面

1
如果您有旧的密钥,应重新创建API密钥。同时要注意代理。

1
代理有什么问题吗?代理需要允许从Google API返回通信吗? - smoore4
1
@SQLDBA,要么它没有配置好,要么新的位置(IP)来自制裁国家,这可能会导致一些问题。 - Soheil Novinfard

1
你可以写"localhost"或"127.0.0.1",但URL必须相同。
例如:Google Domains添加 -> localhost URL -> localhost/login.php 例如:Google Domains添加 -> 127.0.0.1 URL -> 127.0.0.1/login.php

0
我打算在迁移之前停用Recaptcha。不幸的是,我认为我必须经历一个全新的迁移才能绕过Recaptcha。

目前你的回答写得不够清楚。请[编辑]以添加更多细节,帮助其他人理解这如何回答了提出的问题。你可以在帮助中心找到更多关于如何写出好回答的信息。 - undefined

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接