Posted in

Instalar reCaptcha en Laravel 6

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

Más info

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.