Salve salve moqueridos, bora ver como funciona o Google reCaptcha hoje?
Antes de iniciar, é importante você saber que há dois tipos dessa funcionalidade.
Há a opção de que você clique no componente para validar que você não é um robô, e também uma versão transparente que não é necessário a interação do usuário.
Ambas vão ter o mesmo comportamento... Será feito uma análise da quantidade de requisições que está sendo feito, qual o ip de origem e diversas outras regras que são implementadas pelo Google.
Quando o Google duvida do seu comportamento, ele vai lhe mostrar um teste em tela para que você resolva e portanto você não é um robô (um script que automatiza essa ação).
Material de Apoio
O link para o repositório vai estar logo abaixo, e você pode baixar para comparar o seu código junto comigo.
Foi disponibilizado o material, simplesmente por questão da parte visual... Se você quiser, não precisa baixar o material e colocar o seu teste para rodar num formulário qualquer.
Validação da Resposta
Mais importante do que colocar o componente na página, é saber se o que você recebeu está correto ou não. O procedimento é bastante simples!
Quando você coloca o recaptcha no seu formulário, ele vai criar um input hidden com o nome g-recaptcha-response.
Você tem que resgatar esse valor e fazer uma pergunta para uma URL específica do Google juntamente com o seu site key. O endereço completo fica assim:
$url = 'https://www.google.com/recaptcha/api/siteverify?secret=SEU_SITE_KEY&response=' . $postData['g-recaptcha-response'];
Com isso ele vai retornar um json com uma posição para que você possa testar se a resposta é válida ou não.
Embora na aula eu faça o uso do CURL, você pode fazer isso facilmente também com o file_get_contents(), fica assim:
$content = json_decode(file_get_contents($url));
Agora é só dar um var_dump na $content e pegar o resultado.
Feedback
E aí, conseguiu implementar o recaptcha no seu sistema? É bem tranquilo, não é verdade? Me conta se você vai colocar no seu projeto e se conseguiu validar a sua resposta :)
Me diga o que você achou do conteúdo, vou aguardar o seu feedback!
Deixe seu comentário: