Blog EspecializaTi
João Roberto Por: João Roberto Comentar

Google reCaptcha no Laravel

Google reCaptcha no Laravel

Aprenda como é fácil usar o Google reCAPTCHA ( eu não sou um robô ) em seus formulários no Laravel!

Instalação

Não vamos reinventar a roda, vamos utilizar o pacote greggilbert/recaptcha!

Para instalar o pacote, em seu terminal entre no diretório onde o Laravel esta instalado e execute o comando:

composer require greggilbert/recaptcha

Uma outra forma de instalar é editar manualmente o arquivo composer.json e adicionar uma entrada na seção require:

{
     "require": {
         "greggilbert/recaptcha": "^2.2"
     }
}

Configuração do pacote

Uma vez que o composer tenha terminado de baixar todas as dependências necessárias, agora precisamos fazer a ligação do pacote com o Laravel, isso é feito registrando o service provider.

Abra o arquivo /config/app.php e acrescente a linha abaixo no índice providers:

Greggilbert\Recaptcha\RecaptchaServiceProvider::class,

Ainda no mesmo arquivo, porém no índice aliases registre a facade do pacote, conforme a linha abaixo:

 'Recaptcha' => Greggilbert\Recaptcha\Facades\Recaptcha::class, 

Agora no seu terminal, publique o arquivo de configuração:

php artisan vendor:publish --provider="Greggilbert\Recaptcha\RecaptchaServiceProvider"

No arquivo /config/recaptcha.php você tem que inserir sua chave publica e privada que é obtida nas configurações do Google.

Acesse link: https://www.google.com/recaptcha/admin

No formulário, preencha os campos conforme as orientações abaixo:

– No campo Label, insira um nome de identificação para a sua chave

– Escolha qual será o tipo de reCaptcha que iremos utilizar, marque reCAPTCHA V2

– Insira o domínio da aplicação que poderá utilizar o reCaptcha com essa chave. ( Um domínio por linha )

– Aceite os termos de uso e clique no botão register.

reCaptcha

Feito isso, sua chave será criada! Na próxima tela copie os valores de Site key e Secret key e abra o arquivo /config/recaptcha.php.

Insira as informações conforme descrito abaixo:

 – public_key corresponde ao valor de Site Key

 – private_key corresponde ao valor de Secret Key

Você pode configurar isso no seu arquivo .env conforme exemplificado no arquivo de configuração do pacote.

O pacote vem com uma mensagem de validação padrão. Você pode customizar essa mensagem editando o arquivo de lang resources/lang/[lang]/validation.php da aplicação:

'recaptcha' => 'O campo :attribute não está correto.',

Você pode definir a língua padrão utilizada pelo pacote, editando o índice options no arquivo de configuração da seguinte forma:

'options' => [
    'lang' => 'pt-BR',
],

Com essas configurações, já estamos aptos a utilizar o reCAPTCHA em nossos formulários!

Utilizando o reCAPTCHA

Como fizemos o registro da Facade, podemos simplesmente chamar o método {!! Recaptcha::render() !!}, esse método é responsável por inserir o reCAPTCHA em nosso formulário, simples assim!

<form class="form-horizontal" method="POST" action="{{ route('login') }}">
 {{ csrf_field() }}

 <label for="email" class="col-md-4 control-label">E-Mail Address</label>
 <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required autofocus>

 <label for="password" class="col-md-4 control-label">Password</label>
 <input id="password" type="password" class="form-control" name="password" required>

 {!! Recaptcha::render() !!}
 
 <button type="submit" class="btn btn-primary">Login</button>
</form>

form-reCaptcha
Pra fazer a validação desse campo, basta criar uma regra conforme o exemplo abaixo:

$regras = [ 
    'g-recaptcha-response' => 'required|recaptcha',
];

Para mais detalhes, consulte os links:
https://github.com/greggilbert/recaptcha
https://developers.google.com/recaptcha/docs/display

Resumindo é isso!

João Roberto

Sobre o Autor:

João Roberto

João Roberto é graduado em Sistemas para Internet, Analista de Sistemas, instrutor de algumas aulas do Portal Especializa TI e amante da tecnologia. Atua há cerca de 10 anos no mercado de T.I. efetuando trabalhos nas áreas de redes, infraestrutura e desenvolvimento. Nas horas vagas procura compartilhar conhecimento interagindo nas comunidades ou escrevendo artigos em seu blog pessoal. ( http://medium.com/@joaorobertopb ) Atualmente trabalha como Analista de Sistemas na Mitsubishi Motors Brasil.

Todos os direitos reservados © 2018 - EspecializaTi. É proibida a reprodução total ou parcial deste conteúdo.