在localhost上使用reCAPTCHA

rlc*_*rlc 260 localhost recaptcha

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

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

我的问题是:有没有办法在本地主机上使用reCAPTCHA插件?

Nat*_*man 321

更新

原来的答案不再正确.开发人员指南现在声明:

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

这仅在您使用127.0.0.1/...而不是使用localhost访问localhost时才有效localhost/....

原始答案保留在下面.


根据reCAPTCHA开发人员指南:

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

换句话说,只需使用相同的密钥即可.

  • 这个答案是准确的,但有一个重要的警告让我难过:当从reCAPTCHA v1迁移到v2时,有必要重新生成API密钥以使此消息消失.此外,同样重要的是,如果您像我一样,并且通过将条目放入操作系统的"主机"文件中而在本地/开发环境中设置测试域,则需要将这些"假"域添加到允许的域中有问题的reCAPTCHA帐户解决了"错误:站点密钥的无效域"错误. (11认同)
  • 谷歌似乎已经删除了在localhost上测试的能力. (11认同)
  • 我检查确认这些单词是否在该页面上.它不见了!在2015年,您可以找到以上报价@ https://developers.google.com/recaptcha/docs/start (8认同)
  • 当您的localhost未命名为"localhost"时,它无法正常工作. (5认同)
  • `localhost`和`127.0.0.1`都适合我. (5认同)
  • 虽然localhost不适合我,但我能够同时使用127.0.0.1和*.xip.io地址. (4认同)
  • 公共和私人**测试密钥**可在[FAQ](https://developers.google.com/recaptcha/docs/faq)中找到. (3认同)
  • 现在对于 V3,只需将 `localhost` 添加到支持的域列表中即可 (3认同)

CC *_*Inc 98

请注意,截至2016年,ReCaptcha不再天真地支持localhost.来自FAQ:

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

因此,只需添加localhost到您网站的域名列表中,您就会很好.

  • 我添加了`localhost`但仍然收到错误"Localhost不是此站点密钥支持的域列表." (12认同)
  • @ArbazAbid您可能需要等待一个小时才能让谷歌更新他们的系统...... (6认同)

RAM*_*RAM 58

它是如此容易:

  1. 转到您的谷歌reCaptcha管理面板
  2. 添加localhost&127.0.0.1到一个新的网站,如下面的图像的领域.

在此输入图像描述


更新:

如果你的问题是如何设置reCaptcha在谷歌网站在本地主机使用它的话,我已经写了它上面,但如果你很好奇的是如何使用reCAPTCHA localhostwebsite host通过在控制器中最小的代码,并防止像一些代码ConfigurationManager.AppSettings["ReCaptcha:SiteKey"]在它然后我在答案中为您提供了额外的说明和代码.

你喜欢以下GET和POST动作吗?

它支持reCaptcha,不需要任何其他代码来处理reCaptcha.

[HttpGet]
[Recaptcha]
public ActionResult Register()
{
    // Your codes in GET action
}

[HttpPost]
[Recaptcha]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel model, string reCaptcha_SecretKey){
   // Your codes in POST action
   if (!ModelState.IsValid || !ReCaptcha.Validate(reCaptcha_SecretKey))
   {
       // Your codes
   }
   // Your codes
}
Run Code Online (Sandbox Code Playgroud)

查看:(参考)

@ReCaptcha.GetHtml(@ViewBag.publicKey)

@if (ViewBag.RecaptchaLastErrors != null)
{
    <div>Oops! Invalid reCAPTCHA =(</div>
}
Run Code Online (Sandbox Code Playgroud)

使用它

A)将以下内容添加ActionFilter到Web项目中:

public class RecaptchaAttribute : FilterAttribute, IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var setting_Key = filterContext.HttpContext.Request.IsLocal ? "ReCaptcha_Local" : "ReCaptcha";
        filterContext.ActionParameters["ReCaptcha_SecretKey"] = ConfigurationManager.AppSettings[$"{setting_Key}:SecretKey"];
    }

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var setting_Key = filterContext.HttpContext.Request.IsLocal ? "ReCaptcha_Local" : "ReCaptcha";
        filterContext.Controller.ViewBag.Recaptcha = ReCaptcha.GetHtml(publicKey: ConfigurationManager.AppSettings[$"{setting_Key}:SiteKey"]);
        filterContext.Controller.ViewBag.publicKey = ConfigurationManager.AppSettings[$"{setting_Key}:SiteKey"];
    }
}
Run Code Online (Sandbox Code Playgroud)

B)添加reCaptcha设置键都localhostwebsite喜欢在你的webconfig文件:

<appSettings>

    <!-- RECAPTCHA SETTING KEYS FOR LOCALHOST -->
    <add key="ReCaptcha_Local:SiteKey" value="[Localhost SiteKey]" />
    <add key="ReCaptcha_Local:SecretKey" value="[Localhost SecretKey]" />
    <!-- RECAPTCHA SETTING KEYS FOR WEBSITE -->
    <!--<add key="ReCaptcha:SiteKey" value="[Webite SiteKey]" />
    <add key="ReCaptcha:SecretKey" value="[Webite SecretKey]" />-->

    <!-- OTHER SETTING KEYS OF YOUR PROJECT -->

</appSettings>
Run Code Online (Sandbox Code Playgroud)

注:通过这种方式,你并不需要设定reCaptcha_SecretKey的参数后动作或任何ViewBag用于验证码手动您的操作和视图,他们都将在运行时自动使用适当的值取决于你已经运行在本地主机或网站的项目填写.


Pab*_*blo 55

这对我有用:

"使用以下测试密钥,您将始终获得No CAPTCHA并且所有验证请求都将通过.

网站密钥: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI

密钥: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

reCAPTCHA小部件将显示一条警告消息,声称它仅用于测试目的.请不要将这些密钥用于生产流量."

摘自此处:https://developers.google.com/recaptcha/docs/faq

BR!

  • 另请注意,这些适用于 reCAPTCHA v2,而不是 reCAPTCHA v3。常见问题解答建议您制作自己的单独密钥对以针对 v3 进行测试。 (4认同)
  • 看起来这些密钥已经过时了。该链接重定向到[常见问题解答](https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha.-what-should-i-do)提供更新的密钥:“6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI”和“6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe”。 (3认同)

小智 22

当您在 Google reCAPTCHA 中添加时:

添加新域:

本地主机,而不是本地主机

“L”是大写字母。

  • 字母大小写无关紧要。我刚刚测试过。添加 `Localhost` 或 `localhost` 是一样的。至少在 reCaptcha v3 中是这样。 (2认同)

小智 9

删除当前的 reCAPTCHA 密钥,注册新密钥,并使用以下域设置您的密钥设置

127.0.0.1
localhost
Run Code Online (Sandbox Code Playgroud)


Ahs*_*jam 9

最新更新 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”,它工作得很好。 谷歌重新修补本地主机

或者

对于 reCAPTCHA v2,请使用以下测试密钥。您将始终获得“无验证码”,并且所有验证请求都会通过。

Site key: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
Secret key: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
Run Code Online (Sandbox Code Playgroud)

参考


ton*_*9uk 8

Google最近更改已停止,默认情况下允许localhost被允许.(正如@Artur Cesar De Melo所感动的那样)这是他们的常见问题解答:

我收到错误"Localhost不在支持的域列表中".这之前有用,我该怎么办?

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

1:为您的开发环境创建单独的密钥

2:将127.0.0.1添加到允许的域列表中

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


小智 7

在您的 Google reCAPTCHA 网站域列表 ( https://www.google.com/recaptcha/admin/site/{siteid}/settings ) 中,添加LOCALHOST.

如果以上方法不起作用,请尝试添加127.0.0.1

  • 为什么要大写(“LOCALHOST”)? (4认同)

小智 6

reCAPTCHA 不适用于localhost/.

使用127.0.0.1/而不是localhost/.


小智 6

  1. 在https://www.google.com/recaptcha/admin注册您的网站

  2. 添加 JavaScript 插件

  3. 添加 Google 提供的课程和站点密钥

    在此输入图像描述


小智 5

根据Google 的 reCAPTCHA 文档

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


Kat*_*tie 5

截至 2021 年 1 月 2 日,Google 在本文中发布了这两个用于测试的密钥。

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

对于 reCAPTCHA v2,请使用以下测试密钥。您将始终获得 No CAPTCHA,并且所有验证请求都会通过。

Site key: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
Secret key: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
Run Code Online (Sandbox Code Playgroud)

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

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