Usando reCAPTCHA en localhost

Estoy desarrollando un sitio web usando PHP y quiero hacer una verificación humana en una de las sesiones. Para el desarrollo, inicialmente estoy ejecutando el sistema localmente y cuando esté listo, voy a hacer que lo ponga en un cierto dominio.

En el sitio web de reCAPTCHA , se dice que el complemento solo funcionará en el dominio (y subdominios) dados.

Mi pregunta es: ¿hay alguna forma de usar el plugin reCAPTCHA en un servidor local?

Actualizar

La respuesta original ya no es correcta. La guía del desarrollador ahora dice:

“Si desea utilizar” localhost “para el desarrollo, debe agregarlo a la lista de dominios”.

Esto solo funcionará si accede a localhost usando 127.0.0.1/... lugar de localhost/...

La respuesta original se conserva a continuación.


De acuerdo con la Guía del desarrollador reCAPTCHA :

“los dominios localhost ya no son compatibles de manera predeterminada. Si desea continuar apoyándolos para el desarrollo, puede agregarlos a la lista de dominios admitidos para su clave de sitio. Vaya a la consola de administración para actualizar su lista de dominios admitidos. utilice una clave separada para el desarrollo y la producción, y no permita que localhost aparezca en la clave de su sitio de producción “.

En otras palabras, simplemente use la misma clave.

Tenga en cuenta que a partir de 2016, ReCaptcha ya no apoya ingenuamente a localhost . De las preguntas frecuentes:

Los dominios localhost ya no son compatibles por defecto. Si desea continuar apoyándolos para el desarrollo, puede agregarlos a la lista de dominios admitidos para su clave de sitio. Vaya a la consola de administración para actualizar su lista de dominios compatibles. Recomendamos usar una clave separada para desarrollo y producción y no permitir localhost en la clave de su sitio de producción.

Así que solo agregue localhost a su lista de dominios para su sitio y estará bien.

Es tan fácil:

  1. Ve a tu panel de administración de google reCaptcha
  2. Agregue localhost y 127.0.0.1 a los dominios de un nuevo sitio como la siguiente imagen.

enter image description here


Actualizar:

Si su pregunta es cómo configurar reCaptcha en el sitio de Google para usarlo en localhost, entonces lo he escrito anteriormente, pero si tiene curiosidad acerca de cómo puede usar reCAPTCHA tanto en website host en website host mediante códigos mínimos en su controlador y evitar algunos códigos como ConfigurationManager.AppSettings["ReCaptcha:SiteKey"] en él, entonces te ayudo con esta descripción y códigos adicionales en mi respuesta.

¿Te gustan las siguientes acciones GET y POST?

Es compatible con ReCaptcha y no necesita ningún otro código para manejar 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 } 

En vista: ( referencia )

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

Para usarlo

A) Agregue el siguiente ActionFilter a su proyecto 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) Agregue las claves de configuración de reCaptcha para localhost y website como en su archivo webconfig :

         

Nota: De esta manera no necesitó configurar el parámetro reCaptcha_SecretKey en la acción de publicación o cualquier ViewBag para ViewBag manualmente en sus Acciones y Vistas, todas se completarán automáticamente en el tiempo de ejecución con los valores apropiados según haya ejecutado el proyecto en el host local. o sitio web.😉

Esto funcionó para mí:

“Con las siguientes claves de prueba, siempre obtendrá No CAPTCHA y todas las solicitudes de verificación pasarán.

Clave del sitio: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI Clave secreta: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe El widget reCAPTCHA mostrará un mensaje de advertencia para afirmar que es solo para fines de prueba. Por favor, no use estas claves para su tráfico de producción “.

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

BR!

Google ha cambiado recientemente dejó de permitir localhost permitido por defecto. (según lo mencionado por @Artur Cesar De Melo) Esto se encuentra en sus preguntas frecuentes:

Me aparece un error “Localhost no se encuentra en la lista de dominios admitidos”. Esto estaba funcionando antes, ¿qué debería hacer?

Los dominios localhost ya no son compatibles por defecto. Si desea continuar apoyándolos para el desarrollo, puede agregarlos a la lista de dominios admitidos para su clave de sitio. Vaya a la consola de administración para actualizar su lista de dominios compatibles. Recomendamos usar una clave separada para desarrollo y producción y no permitir localhost en la clave de su sitio de producción.

1: crea una clave separada para tu entorno de desarrollo

2: Agregue 127.0.0.1 a la lista de dominios permitidos

3: guarde los cambios y espere hasta 30 minutos para que los cambios surtan efecto

Según la documentación de Google recaptcha

Los dominios localhost ya no son compatibles por defecto. Si desea continuar apoyándolos para el desarrollo, puede agregarlos a la lista de dominios admitidos para su clave de sitio. Vaya a la consola de administración para actualizar su lista de dominios compatibles. Recomendamos utilizar una clave separada para el desarrollo y la producción y no permitir localhost en la clave de su sitio de producción.

Recaptcha no funcionará en localhost/

 Use `127.0.0.1/` instead of `localhost/` 

Elimine la clave actual de recaptcha, luego registre la nueva clave y establezca la configuración de la clave con los dominios: 127.0.0.1 localhost

Si tiene una clave anterior, debe volver a crear su clave API. También ten en cuenta los proxies.

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

Verifique la parte donde dice que puede desactivar el cheque. Solo hazlo para el desarrollo.

Sí, esta es una pregunta anterior, pero puede estar ayudando a todos los usuarios que tienen problemas con reCaptcha en localhost. De hecho, Google dice: “Por defecto, todas las claves funcionan en ‘localhost’ (o ‘127.0.0.1’)”, pero el uso real de reCaptcha en localhost puede causar problemas. En mi caso, resolví el mío usando un token seguro

Publiqué una SOLUCIÓN DE TRABAJO para PHP aquí

Puedes escribir “localhost” o “127.0.0.1” pero la URL debe ser la misma

Ejemplo: Google Domains Add-> localhost URL => localhost / login.php

Ejemplo: Google Domains Add-> 127.0.0.1 URL => 127.0.0.1/login.php

Hace poco estuve trabajando en la creación de un sitio web que incluye recaptcha v2 y tengo la necesidad de hacer pruebas de automatización en mi servidor local. No agregué ninguna IP o localhost en el portal de recaptcha admin.

Sigue los pasos a continuación

  1. Inicie sesión en la captura de pantalla del sitio de recaptcha admin

  2. Ubique la configuración clave

  3. Haga clic en configuración avanzada

  4. En Validación de nombre de dominio , desmarque Verificar el origen de la checkbox ReCAPTCHA solutions . Esta opción se usa para verificar solicitudes provenientes de uno de los dominios listados anteriormente.

    Tenga en cuenta que, si está deshabilitado, debe verificar el nombre de host en su servidor al verificar una solución.


Creé una nueva clave y la deshabilito y uso esta clave para probar en localhost.

Esta es una página de muestra que implementa reCAPTCHA para comentarios.