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

> Làm thế nào để bảo vệ đăng nhập, đăng ký và đặt lại mật khẩu bằng Google reCAPTCHA?

> [!NOTE]
>
> Tính năng này được phát triển bởi [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) và khả dụng từ v6.4.0.

Đăng nhập bằng email và mật khẩu, đăng nhập LDAP, đăng ký và đặt lại mật khẩu có thể yêu cầu Google reCAPTCHA v2 (vô hình). Tính năng này tắt theo mặc định. Hầu hết người dùng không thấy gì cả: việc kiểm tra diễn ra khi họ nhấn nút, và Google chỉ hiển thị thử thách bằng hình ảnh khi thấy yêu cầu đáng ngờ. Đăng nhập SAML và OIDC cũng như các tài khoản do quản trị viên tạo không bị ảnh hưởng.

1. Trong [bảng quản trị reCAPTCHA](https://www.google.com/recaptcha/admin), tạo một khóa loại **reCAPTCHA v2**, **Invisible reCAPTCHA badge**, và thêm tên miền của phiên bản của bạn. Một tên miền cũng bao gồm các tên miền con của nó, ví dụ `example.com` bao gồm `latex.example.com`.
2. Đặt hai khóa trong `config/variables.env` và chạy `bin/up`:

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

| Biến | Mặc định | Mục đích |
| - | - | - |
| `RECAPTCHA_SITE_KEY` | Chưa đặt | Bật captcha cho đăng nhập, đăng nhập LDAP, đăng ký và đặt lại mật khẩu. |
| `RECAPTCHA_SECRET_KEY` | Chưa đặt | Khóa bí mật của cùng khóa reCAPTCHA, được máy chủ dùng để kiểm tra các câu trả lời. |
| `RECAPTCHA_ENDPOINT` | `https://www.google.com/recaptcha/api/siteverify` | Nơi máy chủ kiểm tra các câu trả lời. Nếu không thể truy cập `www.google.com`, hãy dùng `https://www.recaptcha.net/recaptcha/api/siteverify`. |
| `CAPTCHA_TRUSTED_USERS` | Chưa đặt | Danh sách email phân tách bằng dấu phẩy mà máy chủ cho phép đi qua mà không kiểm tra captcha. |
| `CAPTCHA_TRUSTED_USERS_REGEX` | Chưa đặt | Một biểu thức chính quy cho các email như vậy; biểu thức phải khớp với toàn bộ email. |
| `DEVICE_HISTORY_SECRET` | Chưa đặt | 64 ký tự hex, ví dụ từ `openssl rand -hex 32`. Cho phép trình duyệt đã đăng nhập bằng một email bỏ qua captcha cho email đó trong 90 ngày. Nếu chưa đặt, mọi lần đăng nhập đều phải qua captcha. |

* Các trang tải script reCAPTCHA từ `www.recaptcha.net`, địa chỉ này cũng hoạt động ở những nơi `www.google.com` bị chặn.
* Đăng ký và đặt lại mật khẩu luôn yêu cầu captcha. Đăng nhập LDAP cũng luôn yêu cầu, kể cả khi có `DEVICE_HISTORY_SECRET`: nó gửi tên người dùng chứ không phải email.
* Đăng nhập vẫn bị giới hạn tốc độ: 20 lần thử mỗi phút cho mỗi địa chỉ IP và 10 lần thử mỗi 2 phút cho mỗi email.
* Ayakaleaf Pro chỉ kiểm tra xem Google có chấp nhận câu trả lời hay không. Điểm số và ngưỡng của reCAPTCHA v3 không được hỗ trợ, và Google quyết định khi nào hiển thị thử thách.
* Để thử trước khi có khóa, hãy dùng [khóa thử nghiệm](https://developers.google.com/recaptcha/docs/faq) của Google: mọi lần kiểm tra đều đạt và widget hiển thị cảnh báo, vì vậy đừng dùng chúng trong môi trường production.


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