Seguiremos los siguientes pasos:
1 – Instalamos el Google Captcha package
composer require anhskohbo/no-captcha
2 – Añadimos en app.php el provider y el aliases
'providers' => [ Anhskohbo\NoCaptcha\NoCaptchaServiceProvider::class ], 'aliases' => [ 'NoCaptcha' => Anhskohbo\NoCaptcha\Facades\NoCaptcha::class,
3 – Obtenemos la site key y el secret key en Google reCaptcha seleccionando la v2.
4 – Añadimos en nuestro archivo .env los datos
NOCAPTCHA_SITEKEY=secret_site_key NOCAPTCHA_SECRET=secret_key
5 – Abrimos el LoginController.php (/app/Http/Controllers/Auth) y añadimos la siguiente función:
protected function validateLogin(Request $request)
{
$request->validate([
$this->username() => 'required|string',
'password' => 'required|string',
'g-recaptcha-response' => 'required|captcha',
]);
}
Esto realizará un override a la que se encuentra en /Vendor/laravel/framework/src/Foundation/Auth/AuthenticatesUsers.php
6 – Añadimos en nuestra vista login.blade.php (/resources/views/auth)
{!! NoCaptcha::renderJs() !!}
{!! NoCaptcha::display() !!}
@if($errors->has('g-recaptcha-response'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('g-recaptcha-response') }}</strong>
</span>
@endif
7 – Podemos forzar el idioma de “No soy un robot” y el reCaptchaCallback
{!! NoCaptcha::renderJs('ca', false, 'recaptchaCallback') !!}
Y ya tendremos funcionando nuestro reCaptcha

