localhost - poner - recaptcha google example
Usando reCAPTCHA en localhost (13)
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 de reCAPTCHA :
"los dominios de localhost ya no son compatibles de forma predeterminada. Si desea continuar admitiéndolos para el desarrollo, puede agregarlos a la lista de dominios admitidos para la clave de su sitio. Vaya a la consola de administración para actualizar su lista de dominios admitidos. Le recomendamos que use una clave separada para el desarrollo y la producción y para no permitir localhost en la clave de su sitio de producción ".
En otras palabras, simplemente use la misma clave.
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, lo pondré en un dominio determinado.
En el sitio web reCAPTCHA se dice que el complemento solo funcionará en el dominio dado (y subdominios).
Mi pregunta es: ¿hay alguna manera de usar el complemento reCAPTCHA en un host local?
Elimine la clave REcaptcha actual, luego registre la nueva clave y establezca la configuración de su clave con los dominios: 127.0.0.1 localhost
Es tan fácil:
- Vaya a su panel de administración de Google reCaptcha
- Agregue
localhost
y127.0.0.1
a los dominios de un sitio nuevo como la siguiente imagen.
Actualizar:
Si su pregunta es cómo configurar reCaptcha
en el sitio de Google para usarlo en localhost, entonces lo escribí anteriormente, pero si tiene curiosidad de saber cómo puede usar reCAPTCHA
tanto en el website host
localhost
como en el website host
con códigos mínimos en su controlador y evite algunos problemas. Los códigos como ConfigurationManager.AppSettings["ReCaptcha:SiteKey"]
en él, entonces le 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: ( reference )
@ReCaptcha.GetHtml(@ViewBag.publicKey)
@if (ViewBag.RecaptchaLastErrors != null)
{
<div>Oops! Invalid reCAPTCHA =(</div>
}
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
tanto para localhost
como para el website
en su archivo 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>
Nota: De esta manera, no necesita configurar el parámetro
reCaptcha_SecretKey
en la acción posterior ni ningúnViewBag
paraViewBag
manualmente en sus Acciones y Vistas, todos se llenarán automáticamente en el tiempo de ejecución con los valores adecuados, dependiendo de cómo 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 secreta: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI Clave secreta: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4Wif El widget reCAPTCHA mostrará un mensaje de advertencia para que no nos preocupemos. 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 y dejó de permitir que localhost se permita de forma predeterminada. (según lo mencionado por @Artur Cesar De Melo) Esto está bajo sus preguntas frecuentes:
Recibo un error "Localhost no está en la lista de dominios compatibles". Esto estaba funcionando antes, ¿qué debo hacer?
Los dominios localhost ya no son compatibles de forma predeterminada. Si desea continuar admitié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 su clave de sitio de producción.
1: Cree una clave separada para su entorno de desarrollo
2: Agregue 127.0.0.1 a la lista de dominios permitidos
3: guardar cambios y permitir hasta 30 minutos para que los cambios surtan efecto
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
Recaptcha no funcionará en localhost/
Use `127.0.0.1/` instead of `localhost/`
Recientemente estuve trabajando en la creación de un sitio web con recaptcha v2 y tengo la necesidad de realizar pruebas de automatización en mi host local. No agregué ninguna ip o localhost en el portal de administración recaptcha.
Siga los pasos a continuación
Inicia sesión para recaptcha admin site screenshot
Localizar ajustes de clave
Haga clic en la configuración avanzada
En Validación de nombre de dominio , desmarque la casilla de verificación Verificar el origen de las soluciones reCAPTCHA . Esta opción se utiliza para verificar que las solicitudes provienen de uno de los dominios mencionados anteriormente.
Tenga en cuenta que, si está deshabilitado, debe verificar el nombre de host en su servidor cuando verifique una solución.
Creé una nueva clave, la deshabilité y la utilizo para probar en localhost.
Esta es una página de muestra que implementa reCAPTCHA para comentarios.
Sí, esta es una pregunta antigua, pero puede estar ayudando a todos los usuarios que tienen problemas con reCaptcha en localhost. De hecho, Google dice "De forma predeterminada, todas las teclas 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 utilizando token seguro.
Publiqué una SOLUCIÓN DE TRABAJO para PHP aquí
Según la https://developers.google.com/recaptcha/docs/faq
Los dominios localhost ya no son compatibles de forma predeterminada. Si desea continuar admitié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 su clave de sitio de producción
Si tiene una clave antigua, debe volver a crear su clave API. También tenga en cuenta los proxies.
Tenga en cuenta que a partir de 2016, ReCaptcha ya no es compatible de forma ingenua con localhost . De las preguntas frecuentes:
Los dominios localhost ya no son compatibles de forma predeterminada. Si desea continuar admitié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 su clave de sitio de producción.
Solo agregue localhost
a su lista de dominios para su sitio y estará bien.
https://developers.google.com/recaptcha/docs/domain_validation
Compruebe la parte donde dice que puede desactivar la verificación. Solo hazlo por desarrollo.