{"id":27693,"date":"2021-05-22T11:48:00","date_gmt":"2021-05-22T08:48:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27693"},"modified":"2021-10-18T04:10:21","modified_gmt":"2021-10-18T01:10:21","slug":"valide-o-google-recaptcha-usando-javascript","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/valide-o-google-recaptcha-usando-javascript\/","title":{"rendered":"Valide o Google reCAPTCHA usando JavaScript"},"content":{"rendered":"<p>O reCAPTCHA do Google \u00e9 uma escolha popular para proteger os formul\u00e1rios do site contra spam e bots. O reCAPTCHA pede aos usu\u00e1rios que resolvam quebra-cabe\u00e7as simples que s\u00e3o f\u00e1ceis para humanos, mas dif\u00edceis para bots. Como resultado, pode-se economizar espa\u00e7o no servidor inserindo registros de spam desnecess\u00e1rios no banco de dados. Isso tamb\u00e9m nos economiza tempo, pois nunca recebemos coment\u00e1rios de spam em nossa caixa de correio.<\/p>\n<p>Quando adicionamos um reCAPTCHA do Google aos formul\u00e1rios do site, precisamos escrever um c\u00f3digo para validar a resposta do reCAPTCHA. Se uma resposta for v\u00e1lida, apenas o nosso formul\u00e1rio deve prosseguir.<\/p>\n<p>Existem 2 maneiras de validar a resposta, uma \u00e9 do lado do servidor e a outra \u00e9 do lado do cliente. Neste artigo, nos concentramos na valida\u00e7\u00e3o do lado do cliente e, portanto, estudamos como validar o reCAPTCHA do Google usando JavaScript.<\/p>\n<p>Se voc\u00ea estiver procurando por valida\u00e7\u00e3o do lado do servidor, consulte o artigo <a href=\"https:\/\/themewp.inform.click\/pt-pt\/usando-o-google-recaptcha-em-formularios-de-seu-site-com-php\/\" title=\"Usando o Google reCAPTCHA em formul\u00e1rios do seu site com PHP\" >Usando o Google reCAPTCHA em formul\u00e1rios do seu site com PHP<\/a>.<\/p>\n<h3>Registre o site e obtenha chaves de API<\/h3>\n<p>Para come\u00e7ar, voc\u00ea precisa registrar seu site aqui &#8211; <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=\"Valide o Google reCAPTCHA usando JavaScript\" ><\/a><\/p>\n<p>Escolha a op\u00e7\u00e3o &#8216;reCAPTCHA v2&#8217; que fornece uma caixa de sele\u00e7\u00e3o &#8220;Eu n\u00e3o sou um rob\u00f4&quot;.<\/p>\n<p>Depois de inserir os detalhes no formul\u00e1rio acima, voc\u00ea obter\u00e1 a chave do site e a chave secreta. Como estamos lidando com a valida\u00e7\u00e3o do lado do cliente, precisamos apenas de uma chave de site.<\/p>\n<p>Se voc\u00ea quiser test\u00e1-lo em um servidor local, adicione &#8216;localhost&#8217; como um dom\u00ednio.<\/p>\n<h3>Valide o Google reCAPTCHA usando JavaScript<\/h3>\n<p>Primeiro, voc\u00ea precisa adicionar o Google reCAPTCHA ao seu formul\u00e1rio. Voc\u00ea pode fazer isso usando o c\u00f3digo abaixo.<\/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>No c\u00f3digo acima, estou usando o <code>onsubmit<\/code>evento. Isso ocorre porque, quando o usu\u00e1rio envia um formul\u00e1rio, precisamos verificar a resposta do reCAPTCHA e permitir que ele envie um formul\u00e1rio.<\/p>\n<p>Em seguida, adicionei &#8216;verifyCaptcha&#8217; como nome de uma fun\u00e7\u00e3o de retorno de chamada ao atributo &#8216;retorno de chamada de dados&#8217;. Usarei esse m\u00e9todo de retorno de chamada para remover a mensagem de erro assim que a valida\u00e7\u00e3o for aprovada. Tamb\u00e9m adicionei um div com um id &#8216;g-recaptcha-error&#8217; para exibir a mensagem de erro.<\/p>\n<p>Voc\u00ea deve substituir o espa\u00e7o reservado &#8216;YOUR_SITE_KEY&#8217; pela chave real do seu site.<\/p>\n<p>Por fim, vamos escrever um c\u00f3digo JavaScript que manipule a resposta do reCAPTCHA. E com base na resposta, ele mostra uma mensagem de erro ou permite que o formul\u00e1rio prossiga.<\/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>No m\u00e9todo <code>submitUserForm<\/code>, obtemos a resposta reCAPTCHA usando <code>grecaptcha.getResponse()<\/code>. Esta \u00e9 uma fun\u00e7\u00e3o integrada fornecida pelo servi\u00e7o Google reCAPTCHA.<\/p>\n<p>Se a resposta for inv\u00e1lida, ele retornar\u00e1 0. Isso significa que um usu\u00e1rio ainda n\u00e3o validou o reCAPTCHA. E ent\u00e3o, ele lan\u00e7a um erro e anexa ao div que tem id &#8216;g-recaptcha-error&#8217;.<\/p>\n<p>Quando o Google reCAPTCHA envia uma resposta v\u00e1lida, estou retornando um valor verdadeiro, o que permite que o formul\u00e1rio prossiga.<\/p>\n<p>O <code>verifyCaptcha<\/code>m\u00e9todo recebe uma chamada quando voc\u00ea resolve todos os quebra-cabe\u00e7as do reCAPTCHA. Em seguida, removeremos a mensagem de erro assim que o quebra-cabe\u00e7a for resolvido.<\/p>\n<p>Nosso c\u00f3digo final \u00e9:<\/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 voc\u00ea entenda como validar o reCAPTCHA do Google usando JavaScript. Experimente em seu projeto e compartilhe suas id\u00e9ias ou sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/integre-o-recaptcha-invisivel-do-google-com-php\/\" title=\"Integre o reCAPTCHA invis\u00edvel do Google com PHP\">Integre o reCAPTCHA invis\u00edvel do Google com PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/um-guia-para-adicionar-o-google-recaptcha-v3-ao-seu-site-laravel\/\" title=\"Um guia para adicionar o Google reCAPTCHA v3 ao seu site Laravel\">Um guia para adicionar o Google reCAPTCHA v3 ao seu site Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-adicionar-eu-nao-sou-um-captcha-de-robo-no-laravel-forms\/\" title=\"Como adicionar Eu n\u00e3o sou um rob\u00f4 captcha no Laravel Forms\">Como adicionar Eu n\u00e3o sou um rob\u00f4 captcha no Laravel Forms<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea deseja validar o reCAPTCHA do Google usando JavaScript? Neste artigo, mostramos como lidar ou validar a resposta do 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":[250],"tags":[848],"class_list":["post-27693","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27693"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21785"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}