Library untuk bekerja dengan google reCAPTCHA v3.

Instalasi

Jalankan perintah di bawah di folder aplikasi:

mim app install lib-recaptcha

Konfigurasi

Tambahkan konfigurasi seperti di bawah pada konfigurasi aplikasi yang berisi informasi site key untuk reCAPTCHA. Dapatkan sitekey di sini. Pastikan memilih versi 3.

return [
    'libRecaptcha' => [
        'sitekey' => '...',
        'sitesecret' => '...'
    ]
];

Penggunaan

Tambahkan script seperti berikut di template untuk menambahkan captcha di suatu halaman:

<form method="POST">
    <input type="hidden" id="recaptcha" name="recaptcha">
</form>

<?php $sitekey = $this->config->libRecaptcha->sitekey; ?>

<script src="https://www.google.com/recaptcha/api.js?render=<?= $sitekey ?>"></script>
<script>
    grecaptcha.ready(() => {
        let opts = {
            action: 'homepage' // homepage, login, social, e-commerce
        }
        grecaptcha.execute('<?= $sitekey ?>', opts)
            .then(token => {
                document.querySelector('#recaptcha').value = token
            })
    });
</script>

Perhatikan bahwa kita menyimpan token dari recaptcha ke input hidden. Nilai tersebut akan digunakan untuk verifikasi request dari backend.

Module ini menambah satu library dengan nama LibRecaptcha\Library\Validator yang bisa digunakan untuk memverifikasi suatu request:


use LibRecaptcha\Library\Validator;

    // ...
    $token = $this->req->getPost('recaptcha');

    if(is_null(Validator::validate($token)))
        die('You\'re robot');

    echo 'Welcome';
    // ...