Usando o reCAPTCHA no host local

Estou desenvolvendo um site usando PHP e quero fazer uma verificação humana em uma das sessões. Para o desenvolvimento, estou executando inicialmente o sistema localmente e quando estiver pronto, vou fazer isso em um determinado domínio.

No site do reCAPTCHA , diz-se que o plugin funcionará apenas no domínio (e subdomínios) fornecido.

Minha pergunta é: existe alguma maneira de usar o plug-in reCAPTCHA em um host local?

Atualizar

A resposta original não está mais correta. O guia do desenvolvedor agora declara:

“Se você gostaria de usar” localhost “para desenvolvimento, você deve adicioná-lo à lista de domínios.”

Isso só funcionará se você acessar o host local usando 127.0.0.1/... vez de localhost/...

A resposta original é preservada abaixo.


De acordo com o reCAPTCHA Developer’s Guide :

“Os domínios localhost não são mais suportados por padrão. Se você quiser continuar a apoiá-los para desenvolvimento, poderá adicioná-los à lista de domínios suportados para sua chave de site. Vá até o console de administração para atualizar sua lista de domínios suportados. use uma chave separada para desenvolvimento e produção e para não permitir localhost na chave do seu site de produção. ”

Em outras palavras, simplesmente use a mesma chave.

Por favor, note que a partir de 2016, o ReCaptcha não suporta mais o host local . Do FAQ:

Os domínios localhost não são mais suportados por padrão. Se você deseja continuar a apoiá-los para o desenvolvimento, poderá adicioná-los à lista de domínios suportados para sua chave de site. Vá para o Admin Console para atualizar sua lista de domínios suportados. Aconselhamos usar uma chave separada para desenvolvimento e produção e não permitir localhost na sua chave do site de produção.

Então, basta adicionar localhost à sua lista de domínios para o seu site e você será bom.

É tão fácil:

  1. Vá para o painel de administração do google reCaptcha
  2. Adicione localhost & 127.0.0.1 aos domínios de um novo site, como a imagem a seguir.

insira a descrição da imagem aqui


Atualizar:

Se sua pergunta é como configurar o reCaptcha no Google site para usá-lo no localhost, então eu o escrevi acima, mas se você está curioso em saber como usar o reCAPTCHA no localhost e no website host por códigos mínimos no seu controlador e impedir códigos como ConfigurationManager.AppSettings["ReCaptcha:SiteKey"] nele, então eu te ajudo com esta descrição extra e códigos na minha resposta.

Você gosta das seguintes ações GET e POST?

👇 suporta reCaptcha e não precisa de nenhum outro código para lidar com o 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 } 

In View: ( referência )

 @ReCaptcha.GetHtml(@ViewBag.publicKey) @if (ViewBag.RecaptchaLastErrors != null) { 
Oops! Invalid reCAPTCHA =(
}

Para usá-lo

A) Adicione o seguinte ActionFilter ao seu projeto da 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"]; } } 

B) Adicione as chaves de configurações do reCaptcha tanto para o localhost quanto para o website como em seu arquivo webconfig :

         

Nota: Desta forma, você não precisa definir o parâmetro reCaptcha_SecretKey na ação de postagem ou qualquer ViewBag para reCaptcha manualmente nas suas Ações e Visualizações, todas elas serão preenchidas automaticamente no tempo de execução com valores apropriados, dependendo de você ter executado o projeto no localhost ou website.😉

Isso funcionou para mim:

“Com as seguintes chaves de teste, você sempre receberá Nenhum CAPTCHA e todas as solicitações de verificação serão aprovadas.

Chave do site: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI Chave secreta: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe O widget reCAPTCHA mostrará uma mensagem de aviso para afirmar que é apenas para fins de teste. Por favor, não use essas chaves para o seu tráfego de produção. ”

Extraído daqui: https://developers.google.com/recaptcha/docs/faq

BR!

O Google mudou recentemente parou de permitir que o localhost fosse permitido por padrão. (como abordado por @Artur Cesar De Melo) Isto está sob o seu FAQ:

Estou recebendo um erro “Localhost não está na lista de domínios suportados”. Isso estava funcionando antes, o que devo fazer?

Os domínios localhost não são mais suportados por padrão. Se você deseja continuar a apoiá-los para o desenvolvimento, poderá adicioná-los à lista de domínios suportados para sua chave de site. Vá para o Admin Console para atualizar sua lista de domínios suportados. Aconselhamos usar uma chave separada para desenvolvimento e produção e não permitir localhost na sua chave do site de produção.

1: Crie uma chave separada para o seu ambiente de desenvolvimento

2: Adicione 127.0.0.1 à lista de domínios permitidos

3: salve as alterações e aguarde até 30 minutos para que as alterações afetem

De acordo com a documentação de recaptcha do Google

Os domínios localhost não são mais suportados por padrão. Se você deseja continuar a apoiá-los para o desenvolvimento, poderá adicioná-los à lista de domínios suportados para sua chave de site. Vá para o Admin Console para atualizar sua lista de domínios suportados. Recomendamos usar uma chave separada para desenvolvimento e produção e não permitir localhost na chave do site de produção

Recaptcha não funcionará em localhost/

 Use `127.0.0.1/` instead of `localhost/` 

Remova a chave REcaptcha atual, registre a nova chave e defina suas configurações principais com os domínios: 127.0.0.1 localhost

Se você tiver uma chave antiga, deverá recriar sua chave de API. Também esteja ciente dos proxies.

https://developers.google.com/recaptcha/docs/domain_validation

Verifique a parte em que diz que você pode desativar a verificação. Apenas faça isso para o desenvolvimento.

Sim, isso é uma pergunta antiga, mas isso pode estar ajudando todos os usuários a terem problemas com o reCaptcha no host local. O Google realmente diz “Por padrão, todas as chaves funcionam em ‘localhost’ (ou ‘127.0.0.1’)”, mas usar o reCaptcha no localhost real pode causar problemas. No meu caso eu resolvi o meu usando token seguro

Eu postei uma SOLUÇÃO DE TRABALHO para PHP aqui

Você pode escrever “localhost” ou “127.0.0.1”, mas o URL deve ser o mesmo

Exemplo: Domínios do Google Adicionar-> URL do host local => localhost / login.php

Exemplo: Domínios do Google Adicionar-> 127.0.0.1 URL => 127.0.0.1/login.php

Eu estava trabalhando recentemente na criação de um site envolvendo o recaptcha v2 e tenho a necessidade de testar a automação no meu host local. Eu não adicionei nenhum ip ou localhost no portal admin do recaptcha.

Siga os passos abaixo

  1. Faça o login para recaptcha admin site screenshot

  2. Localizar configurações de chave

  3. Clique nas configurações avançadas

  4. Em Validação de nome de domínio , desmarque a checkbox de seleção Verificar a origem das soluções reCAPTCHA . Essa opção é usada para verificar solicitações provenientes de um dos domínios listados acima.

    Observe que, se desativado, você deverá verificar o nome do host em seu servidor ao verificar uma solução.


Eu criei uma nova chave e desabilite isso e use essa chave para testar em localhost.

Esta é uma página de amostra que implementa o reCAPTCHA para comentários.