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

> ¿Cómo proteger el inicio de sesión, el registro y el restablecimiento de contraseña con Google reCAPTCHA?

> [!NOTE]
>
> Esta función ha sido desarrollada por [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) y está disponible a partir de la v6.4.0.

El inicio de sesión con correo electrónico y contraseña, el inicio de sesión LDAP, el registro y el restablecimiento de contraseña pueden solicitar un Google reCAPTCHA v2 (invisible). Está desactivado de forma predeterminada. La mayoría de los usuarios no ven nada: la comprobación se ejecuta cuando pulsan el botón, y Google muestra un desafío con imágenes solo cuando considera sospechosa la solicitud. Los inicios de sesión SAML y OIDC y las cuentas creadas por un administrador no se ven afectados.

1. En la [consola de administración de reCAPTCHA](https://www.google.com/recaptcha/admin), crea una clave de tipo **reCAPTCHA v2**, **Invisible reCAPTCHA badge**, y añade el dominio de tu instancia. Un dominio también abarca sus subdominios; p. ej., `example.com` abarca `latex.example.com`.
2. Establece las dos claves en `config/variables.env` y ejecuta `bin/up`:

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

| Variable | Valor predeterminado | Finalidad |
| - | - | - |
| `RECAPTCHA_SITE_KEY` | Sin definir | Activa el captcha para el inicio de sesión, el inicio de sesión LDAP, el registro y el restablecimiento de contraseña. |
| `RECAPTCHA_SECRET_KEY` | Sin definir | Clave secreta de la misma clave de reCAPTCHA, que el servidor usa para comprobar las respuestas. |
| `RECAPTCHA_ENDPOINT` | `https://www.google.com/recaptcha/api/siteverify` | Dónde comprueba el servidor las respuestas. Si no se puede acceder a `www.google.com`, usa `https://www.recaptcha.net/recaptcha/api/siteverify`. |
| `CAPTCHA_TRUSTED_USERS` | Sin definir | Correos electrónicos separados por comas que el servidor deja pasar sin comprobar el captcha. |
| `CAPTCHA_TRUSTED_USERS_REGEX` | Sin definir | Una expresión regular para dichos correos electrónicos; debe coincidir con el correo electrónico completo. |
| `DEVICE_HISTORY_SECRET` | Sin definir | 64 caracteres hexadecimales, p. ej., de `openssl rand -hex 32`. Permite que un navegador que ha iniciado sesión con un correo electrónico omita el captcha para ese correo durante 90 días. Si no se define, cada inicio de sesión muestra el captcha. |

* Las páginas cargan el script de reCAPTCHA desde `www.recaptcha.net`, que también funciona donde `www.google.com` está bloqueado.
* El registro y el restablecimiento de contraseña lo solicitan siempre. El inicio de sesión LDAP también lo solicita siempre, incluso con `DEVICE_HISTORY_SECRET`: envía un nombre de usuario, no un correo electrónico.
* Los inicios de sesión también siguen teniendo límite de frecuencia: 20 intentos por minuto por dirección IP y 10 intentos cada 2 minutos por correo electrónico.
* Ayakaleaf Pro solo comprueba si Google acepta la respuesta. No se admiten las puntuaciones ni los umbrales de reCAPTCHA v3, y es Google quien decide cuándo mostrar un desafío.
* Para probarlo antes de tener una clave, usa las [claves de prueba](https://developers.google.com/recaptcha/docs/faq) de Google: todas las comprobaciones se superan y el widget muestra una advertencia, así que no las uses en producción.


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