los/losrecaptcha

ZF2 module for integration with new ReCaptcha service form Google

2.2.0 2020-01-02 13:26 UTC

This package is auto-updated.

Last update: 2024-10-29 04:36:28 UTC


README

PHP module for using the ReCaptcha v2 system from Google

https://www.google.com/recaptcha/intro/index.html

Zend Form

To use with Zend\Form, just initialize like the default ReCaptcha element:

$this->add([
   'name' => 'captcha',
    'type' => 'captcha',
    'options' => [
        'captcha' => new LosReCaptcha\Captcha\ReCaptcha([
            'site_key' => $siteKey,
            'secret_key' => $siteSecret,
        ]),
    ],
]);

For Invisible ReCaptcha:

// ...
$this->add([
   'name' => 'captcha',
    'type' => 'captcha',
    'options' => [
        'captcha' => new \LosReCaptcha\Captcha\Invisible([
            'site_key' => $siteKey,
            'secret_key' => $siteSecret,
            'callback' => 'captchaSubmit', // Callback to submit the form
            'button_id' => 'submit-button', // Button id to submit the form
        ]),
    ],
]);
// ...
$this->add([
    'name' => 'submit-button',
    'type' => \Zend\Form\Element\Button::class,
    'options' => [
        'label' => _('Log In'),
    ],
    'attributes' => [
        'id'    => 'submit-button',
        'class' => 'btn btn-block btn-primary',
        'value' => _('Log In'),
    ],
]);

In the view for Invisible ReCaptcha:

function captchaSubmit() {
  // Any js code, eg. fields validation
  document.getElementById("login").submit();
}

For Zend Expressive, you can inject the configuration with the ConfigProvider inside your config/config.php:

<?php
// ...
$aggregator = new ConfigAggregator([
    // ...
    \LosReCaptcha\ConfigProvider::class,
    // ...
], $cacheConfig['config_cache_path']);

return $aggregator->getMergedConfig();