Skip to content

marianodonal/cakephp-invisible-recaptcha

 
 

Repository files navigation

cakephp-invisible-recaptcha plugin for CakePHP

MIT License Build Status

Requirements

  • CakePHP 4.0.0+

Installation

composer require marianodonal/cakephp-invisible-recaptcha

obtain a invisible reCAPTCHA API key.

SetUp

Configure

With the following test keys, you will always get No CAPTCHA and all verification requests will pass.
Please do not use these keys for your production traffic.

Configure::write('recaptcha', [
    'sitekey' => '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI',
    'secretkey' => '6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe',
]);

loadComponent

$this->loadComponent('InvisibleReCaptcha.InvisibleReCaptcha',
    [
        // options
    ]);

Some of the options available:

Option Description Default Value
secretkey Override secret API key null
sitekey Override site API key null
hl Optional. Forces the widget to render in a specific language. Auto-detects the user's language if unspecified. (See language codes) null
badge Optional. Reposition the reCAPTCHA badge.inline allows you to control the CSS. bottomright bottomright
bottomleft
inline
type Optional. The type of CAPTCHA to serve. image audio
image
timeout The number of seconds to wait for reCAPTCHA servers before give up. 3 integer
noscript Include <noscript> content true boolean

docs https://developers.google.com/recaptcha/docs/invisible#config

Used

Display recaptcha in your view

<?php
echo $this->Form->create();
echo $this->Form->control('email');
echo $this->Form->submit();
echo $this->InvisibleReCaptcha->render();
echo $this->Form->end();
?>

Verify in your controller

if ($this->InvisibleReCaptcha->verify()) {
    //do something
}

use ServerRequest::clientIp to get the IP address.
See https://book.cakephp.org/3.0/en/controllers/request-response.html#trusting-proxy-headers

About

Google Invisible reCAPTCHA plugin for CakePHP4

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%