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?
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:
localhost
y 127.0.0.1
a los dominios de un nuevo sitio como la siguiente imagen.
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 cualquierViewBag
paraViewBag
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
Inicie sesión en la captura de pantalla del sitio de recaptcha admin
Ubique la configuración clave
Haga clic en configuración avanzada
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.