> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# reCAPTCHA

> Bagaimana cara melindungi login, pendaftaran, dan reset kata sandi dengan Google reCAPTCHA?

> [!NOTE]
>
> Fitur ini dikembangkan oleh [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) dan tersedia mulai v6.4.0.

Login dengan email dan kata sandi, login LDAP, pendaftaran, dan reset kata sandi dapat meminta Google reCAPTCHA v2 (invisible). Fitur ini nonaktif secara default. Sebagian besar pengguna tidak melihat apa pun: pemeriksaan berjalan saat mereka menekan tombol, dan Google hanya menampilkan tantangan gambar jika menganggap permintaan tersebut mencurigakan. Login SAML dan OIDC serta akun yang dibuat oleh admin tidak terpengaruh.

1. Di [konsol admin reCAPTCHA](https://www.google.com/recaptcha/admin), buat kunci dengan jenis **reCAPTCHA v2**, **Invisible reCAPTCHA badge**, lalu tambahkan domain instance Anda. Sebuah domain juga mencakup subdomainnya, misalnya `example.com` mencakup `latex.example.com`.
2. Atur kedua kunci di `config/variables.env` lalu jalankan `bin/up`:

```text theme={null}
RECAPTCHA_SITE_KEY=<site key>
RECAPTCHA_SECRET_KEY=<secret key>
```

| Variabel | Default | Fungsi |
| - | - | - |
| `RECAPTCHA_SITE_KEY` | Tidak diatur | Mengaktifkan captcha untuk login, login LDAP, pendaftaran, dan reset kata sandi. |
| `RECAPTCHA_SECRET_KEY` | Tidak diatur | Secret key dari kunci reCAPTCHA yang sama, digunakan oleh server untuk memeriksa jawaban. |
| `RECAPTCHA_ENDPOINT` | `https://www.google.com/recaptcha/api/siteverify` | Tempat server memeriksa jawaban. Jika `www.google.com` tidak dapat dijangkau, gunakan `https://www.recaptcha.net/recaptcha/api/siteverify`. |
| `CAPTCHA_TRUSTED_USERS` | Tidak diatur | Daftar email yang dipisahkan koma yang diloloskan server tanpa memeriksa captcha. |
| `CAPTCHA_TRUSTED_USERS_REGEX` | Tidak diatur | Ekspresi reguler untuk email semacam itu; harus cocok dengan seluruh email. |
| `DEVICE_HISTORY_SECRET` | Tidak diatur | 64 karakter heksadesimal, misalnya dari `openssl rand -hex 32`. Memungkinkan browser yang pernah login dengan suatu email melewati captcha untuk email tersebut selama 90 hari. Jika tidak diatur, setiap login akan mendapatkan captcha. |

* Halaman-halaman memuat skrip reCAPTCHA dari `www.recaptcha.net`, yang juga berfungsi di tempat `www.google.com` diblokir.
* Pendaftaran dan reset kata sandi selalu meminta captcha. Login LDAP juga selalu meminta captcha, bahkan dengan `DEVICE_HISTORY_SECRET`: login ini mengirimkan nama pengguna, bukan email.
* Login juga tetap dibatasi lajunya: 20 percobaan per menit per alamat IP dan 10 percobaan per 2 menit per email.
* Ayakaleaf Pro hanya memeriksa apakah Google menerima jawabannya. Skor dan ambang batas reCAPTCHA v3 tidak didukung, dan Google yang menentukan kapan tantangan ditampilkan.
* Untuk mencobanya sebelum Anda memiliki kunci, gunakan [kunci uji](https://developers.google.com/recaptcha/docs/faq) dari Google: setiap pemeriksaan akan lolos dan widget menampilkan peringatan, jadi jangan gunakan kunci tersebut di produksi.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.