Newer
Older
codeigniter4-recaptcha / README.md
@denis303 denis303 on 22 Oct 2020 1 KB n/a

Google reCAPTCHA CodeIgniter 4 Library

Installation

## Configuration

In the .env file you need to add your personal ReCaptcha keys.

--------------------------------------------------------------------

ReCaptcha 2

--------------------------------------------------------------------

recaptcha2.key = 'XXXXXXXX-XXXXXXXX' recaptcha2.secret = 'XXXXXXXX-XXXXXXXX'

--------------------------------------------------------------------

ReCaptcha 3

--------------------------------------------------------------------

recaptcha3.key = 'XXXXXXXX-XXXXXXXX' recaptcha3.secret = 'XXXXXXXX-XXXXXXXX' recaptcha3.scoreThreshold = 0.5

In the /app/Config/Validation.php file you need to add settings for validator:

public $ruleSets = [
    ...
    \Denis303\ReCaptcha\Validation\ReCaptchaRules::class
];

## Rendering ReCaptcha v2

helper(['form', 'reCaptcha']);

echo form_open();

echo reCaptcha2('reCaptcha2', ['id' => 'recaptcha_1'], ['theme' => 'dark']);

echo form_submit('submit', 'Submit');

echo form_close();

## Rendering ReCaptcha v3

helper(['form', 'reCaptcha']);

echo form_open();

echo reCaptcha3('reCaptcha3', ['id' => 'recaptcha_1'], ['action' => 'contactForm']);

echo form_submit('submit', 'Submit');

echo form_close(); ```

Checking ReCaptcha in a model:

public $validationRules = [ 'reCaptcha2' => 'required|reCaptcha2[]' 'reCaptcha3' => 'required|reCaptcha3[contactForm,0.9]' .... ];

In the settings of the reCaptcha3 validator, the first parameter you specify is expectedAction, this parameter is not required.

You can override global scoreThreshold parameter in the second rule parameter.

Setting custom ReCaptcha validation error in a model:

protected $validationMessages = [ 'reCaptcha' => [ 'reCaptcha3' => 'Captcha is not valid.' ] ];