> ## 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

> Як захистити вхід, реєстрацію та скидання пароля за допомогою Google reCAPTCHA?

> [!NOTE]
>
> Цю функцію розроблено в [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro), і вона доступна починаючи з v6.4.0.

Вхід за електронною поштою та паролем, вхід через LDAP, реєстрація та скидання пароля можуть вимагати проходження Google reCAPTCHA v2 (невидимої). За замовчуванням її вимкнено. Більшість користувачів нічого не помічає: перевірка виконується, коли вони натискають кнопку, а Google показує завдання із зображеннями лише тоді, коли вважає запит підозрілим. Входи через SAML та OIDC, а також облікові записи, створені адміністратором, це не зачіпає.

1. У [консолі адміністратора reCAPTCHA](https://www.google.com/recaptcha/admin) створіть ключ типу **reCAPTCHA v2**, **Invisible reCAPTCHA badge** і додайте домен свого екземпляра. Домен охоплює й свої піддомени, наприклад `example.com` охоплює `latex.example.com`.
2. Задайте обидва ключі в `config/variables.env` і виконайте `bin/up`:

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

| Змінна | За замовчуванням | Призначення |
| - | - | - |
| `RECAPTCHA_SITE_KEY` | Не задано | Вмикає капчу для входу, входу через LDAP, реєстрації та скидання пароля. |
| `RECAPTCHA_SECRET_KEY` | Не задано | Секретний ключ того самого ключа reCAPTCHA, за допомогою якого сервер перевіряє відповіді. |
| `RECAPTCHA_ENDPOINT` | `https://www.google.com/recaptcha/api/siteverify` | Адреса, за якою сервер перевіряє відповіді. Якщо `www.google.com` недоступний, використовуйте `https://www.recaptcha.net/recaptcha/api/siteverify`. |
| `CAPTCHA_TRUSTED_USERS` | Не задано | Розділені комами адреси електронної пошти, які сервер пропускає без перевірки капчі. |
| `CAPTCHA_TRUSTED_USERS_REGEX` | Не задано | Регулярний вираз для таких адрес; він має збігатися з усією адресою електронної пошти. |
| `DEVICE_HISTORY_SECRET` | Не задано | 64 шістнадцяткові символи, наприклад з `openssl rand -hex 32`. Дає змогу браузеру, який увійшов з певною адресою електронної пошти, пропускати капчу для цієї адреси протягом 90 днів. Якщо не задано, капча з'являється під час кожного входу. |

* Сторінки завантажують скрипт reCAPTCHA з `www.recaptcha.net`, який працює й там, де `www.google.com` заблоковано.
* Реєстрація та скидання пароля вимагають перевірки щоразу. Вхід через LDAP також вимагає її щоразу, навіть із `DEVICE_HISTORY_SECRET`: він надсилає ім'я користувача, а не адресу електронної пошти.
* Частота спроб входу також і надалі обмежена: 20 спроб на хвилину з однієї IP-адреси та 10 спроб за 2 хвилини для однієї адреси електронної пошти.
* Ayakaleaf Pro перевіряє лише те, чи приймає Google відповідь. Оцінки та порогові значення reCAPTCHA v3 не підтримуються, а коли показувати завдання, вирішує Google.
* Щоб спробувати функцію ще до отримання ключа, використовуйте [тестові ключі](https://developers.google.com/recaptcha/docs/faq) Google: кожна перевірка проходить успішно, а віджет показує попередження, тож не використовуйте їх у робочому середовищі.


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