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

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

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


当前回答

迅速的回答

Do get requests on Recaptcha in your backend rather than frontend

其他回答

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

管理控制台截图

验证码输出

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

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

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

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

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

我在Laravel网站上得到了一个与reCAPTCHA相关的错误。我通过使用一些命令和一个env文件解决了这个问题,以前的答案也将有助于解决这个问题。

首先,检查env文件(在您的示例中,该文件具有谷歌reCAPTCHA密钥)中的谷歌reCAPTCHA密钥。

其次,运行这些命令:

PHP工匠配置:清除 PHP工匠缓存:清除 作曲家dump-autoload PHP工匠视图:清除 PHP工匠路线:清除

它会解决你的问题。

更新

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

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

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

原答案保存在下面。


根据reCAPTCHA开发者指南:

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

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

如果你正在使用Laravel,那么你应该重新启动你的服务器 执行如下两条命令:

php artisan config:clear

php artisan cache:clear