{"id":28183,"date":"2021-05-22T11:27:00","date_gmt":"2021-05-22T08:27:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28183"},"modified":"2021-10-17T16:51:15","modified_gmt":"2021-10-17T13:51:15","slug":"validar-google-recaptcha-usando-javascript","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/validar-google-recaptcha-usando-javascript\/","title":{"rendered":"Validar Google reCAPTCHA usando JavaScript"},"content":{"rendered":"<p>Google reCAPTCHA es una opci\u00f3n popular para proteger los formularios de sitios web contra spam y bots. El reCAPTCHA pide a los usuarios que resuelvan acertijos simples que son f\u00e1ciles para los humanos pero dif\u00edciles para los bots. Como resultado, uno puede evitar que el espacio de su servidor inserte registros de spam innecesarios en la base de datos. Tambi\u00e9n nos ahorra tiempo ya que nunca recibimos comentarios de spam en nuestro buz\u00f3n.<\/p>\n<p>Cuando agregamos un reCAPTCHA de Google en formularios de sitios web, necesitamos escribir un fragmento de c\u00f3digo para validar la respuesta de reCAPTCHA. Si una respuesta es v\u00e1lida, solo nuestro formulario debe continuar.<\/p>\n<p>Hay 2 formas de validar la respuesta, una es del lado del servidor y la otra es del lado del cliente. En este art\u00edculo, nos enfocamos en la validaci\u00f3n del lado del cliente y, por lo tanto, estudiamos c\u00f3mo validar Google reCAPTCHA usando JavaScript.<\/p>\n<p>Si est\u00e1 buscando una validaci\u00f3n del lado del servidor, consulte el art\u00edculo <a href=\"https:\/\/themewp.inform.click\/es\/uso-de-google-recaptcha-en-los-formularios-de-su-sitio-web-con-php\/\" title=\"Uso de reCAPTCHA de Google en los formularios de su sitio web con PHP\" >Uso de reCAPTCHA de Google en los formularios de su sitio web con PHP<\/a>.<\/p>\n<h3>Registre el sitio y obtenga claves API<\/h3>\n<p>Para comenzar, debe registrar su sitio aqu\u00ed: <a href=\"https:\/\/www.google.com\/recaptcha\/admin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/www.google.com\/recaptcha\/admin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/www.google.com\/recaptcha\/admin<\/a>.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20518-6081fe9b2d78e.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20518-6081fe9b2d78e.png\" alt=\"Validar Google reCAPTCHA usando JavaScript\" ><\/a><\/p>\n<p>Elija la opci\u00f3n &#8216;reCAPTCHA v2&#8217; que da una casilla de verificaci\u00f3n &quot;No soy un robot&quot;.<\/p>\n<p>Una vez que haya ingresado los detalles en el formulario anterior, obtendr\u00e1 la clave del sitio y la clave secreta. Como nos ocupamos de la validaci\u00f3n del lado del cliente, solo necesitamos una clave de sitio.<\/p>\n<p>Si desea probarlo en un servidor local, agregue &#8216;localhost&#8217; como dominio.<\/p>\n<h3>Validar Google reCAPTCHA usando JavaScript<\/h3>\n<p>Primero, debe agregar Google reCAPTCHA en su formulario. Puedes hacerlo usando el siguiente c\u00f3digo.<\/p>\n<pre><code>&lt;form method=\"post\" onsubmit=\"return submitUserForm();\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"g-recaptcha\" data-sitekey=\"YOUR_SITE_KEY\" data-callback=\"verifyCaptcha\"&gt;&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div id=\"g-recaptcha-error\"&gt;&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;\n&lt;script src='https:\/\/www.google.com\/recaptcha\/api.js'&gt;&lt;\/script&gt;<\/code><\/pre>\n<p>En el c\u00f3digo anterior, estoy usando <code>onsubmit<\/code>event. Esto se debe a que cuando el usuario env\u00eda un formulario, debemos verificar la respuesta de reCAPTCHA y luego permitirle que env\u00ede un formulario.<\/p>\n<p>Luego agregu\u00e9 un &#8216;verifyCaptcha&#8217; como nombre de una funci\u00f3n de devoluci\u00f3n de llamada al atributo &#8216;data-callback&#8217;. Usar\u00e9 este m\u00e9todo de devoluci\u00f3n de llamada para eliminar el mensaje de error una vez que se pase la validaci\u00f3n. Tambi\u00e9n agregu\u00e9 un div con un id &#8216;g-recaptcha-error&#8217; para mostrar el mensaje de error.<\/p>\n<p>Debe reemplazar el marcador de posici\u00f3n &#8216;YOUR_SITE_KEY&#8217; con su clave de sitio real.<\/p>\n<p>Finalmente, escribamos un c\u00f3digo JavaScript que maneje la respuesta reCAPTCHA. Y seg\u00fan la respuesta, muestra un mensaje de error o permite que el formulario contin\u00fae.<\/p>\n<pre><code>&lt;script&gt;\nfunction submitUserForm() {\n\u00a0\u00a0\u00a0\u00a0var response = grecaptcha.getResponse();\n\u00a0\u00a0\u00a0\u00a0if(response.length == 0) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0document.getElementById('g-recaptcha-error').innerHTML = '&lt;span style=\"color:red;\"&gt;This field is required.&lt;\/span&gt;';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return false;\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0return true;\n}\n\u00a0\nfunction verifyCaptcha() {\n\u00a0\u00a0\u00a0\u00a0document.getElementById('g-recaptcha-error').innerHTML = '';\n}\n&lt;\/script&gt;<\/code><\/pre>\n<p>En el m\u00e9todo <code>submitUserForm<\/code>obtenemos la respuesta reCAPTCHA usando <code>grecaptcha.getResponse()<\/code>. Esta es una funci\u00f3n incorporada proporcionada por el servicio reCAPTCHA de Google.<\/p>\n<p>Si la respuesta no es v\u00e1lida, devuelve 0. Significa que un usuario a\u00fan no ha validado reCAPTCHA. Y entonces, arroja un error y se agrega al div que tiene id &#8216;g-recaptcha-error&#8217;.<\/p>\n<p>Cuando Google reCAPTCHA env\u00eda una respuesta v\u00e1lida, estoy devolviendo un valor verdadero, lo que permite que el formulario contin\u00fae.<\/p>\n<p>El <code>verifyCaptcha<\/code>m\u00e9todo recibe una llamada cuando resuelves todos los acertijos de reCAPTCHA. Luego, eliminamos el mensaje de error una vez que se resuelve un acertijo.<\/p>\n<p>Nuestro c\u00f3digo final es:<\/p>\n<pre><code>&lt;form method=\"post\" onsubmit=\"return submitUserForm();\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"g-recaptcha\" data-sitekey=\"YOUR_SITE_KEY\" data-callback=\"verifyCaptcha\"&gt;&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div id=\"g-recaptcha-error\"&gt;&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;\n&lt;script src='https:\/\/www.google.com\/recaptcha\/api.js'&gt;&lt;\/script&gt;\n&lt;script&gt;\nfunction submitUserForm() {\n\u00a0\u00a0\u00a0\u00a0var response = grecaptcha.getResponse();\n\u00a0\u00a0\u00a0\u00a0if(response.length == 0) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0document.getElementById('g-recaptcha-error').innerHTML = '&lt;span style=\"color:red;\"&gt;This field is required.&lt;\/span&gt;';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return false;\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0return true;\n}\n\u00a0\nfunction verifyCaptcha() {\n\u00a0\u00a0\u00a0\u00a0document.getElementById('g-recaptcha-error').innerHTML = '';\n}\n&lt;\/script&gt;<\/code><\/pre>\n<p>Espero que comprenda c\u00f3mo validar Google reCAPTCHA usando JavaScript. Pru\u00e9belo en su proyecto y comparta sus pensamientos o sugerencias en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/integre-google-invisible-recaptcha-con-php\/\" title=\"Integre Google Invisible reCAPTCHA con PHP\">Integre Google Invisible reCAPTCHA con PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/una-guia-para-agregar-google-recaptcha-v3-a-su-sitio-web-de-laravel\/\" title=\"Una gu\u00eda para agregar Google reCAPTCHA v3 a su sitio web de Laravel\">Una gu\u00eda para agregar Google reCAPTCHA v3 a su sitio web de Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-agregar-no-soy-un-robot-captcha-en-laravel-forms\/\" title=\"C\u00f3mo agregar no soy un robot captcha en formularios de Laravel\">C\u00f3mo agregar no soy un robot captcha en formularios de Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfEst\u00e1 buscando validar Google reCAPTCHA usando JavaScript? En este art\u00edculo, le mostramos c\u00f3mo se puede manejar o validar la respuesta de Google reCAPTCHA usando JavaScript.<\/p>\n","protected":false},"author":1,"featured_media":21785,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[243],"tags":[849],"class_list":["post-28183","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=28183"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28183\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21785"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=28183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=28183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=28183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}