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

> Como proteger o login, o registro e a redefinição de senha com o Google reCAPTCHA?

> [!NOTE]
>
> Este recurso foi desenvolvido por [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) e está disponível a partir da v6.4.0.

O login com e-mail e senha, o login LDAP, o registro e a redefinição de senha podem solicitar um Google reCAPTCHA v2 (invisível). Ele vem desativado por padrão. A maioria dos usuários não vê nada: a verificação é executada quando eles pressionam o botão, e o Google mostra um desafio com imagens apenas quando considera a solicitação suspeita. Os logins via SAML e OIDC e as contas criadas por um administrador não são afetados.

1. No [console de administração do reCAPTCHA](https://www.google.com/recaptcha/admin), crie uma chave do tipo **reCAPTCHA v2**, **Invisible reCAPTCHA badge**, e adicione o domínio da sua instância. Um domínio também abrange seus subdomínios, por exemplo, `example.com` abrange `latex.example.com`.
2. Defina as duas chaves em `config/variables.env` e execute `bin/up`:

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

| Variável | Padrão | Finalidade |
| - | - | - |
| `RECAPTCHA_SITE_KEY` | Não definida | Ativa o captcha para o login, o login LDAP, o registro e a redefinição de senha. |
| `RECAPTCHA_SECRET_KEY` | Não definida | Chave secreta da mesma chave reCAPTCHA, usada pelo servidor para verificar as respostas. |
| `RECAPTCHA_ENDPOINT` | `https://www.google.com/recaptcha/api/siteverify` | Onde o servidor verifica as respostas. Onde `www.google.com` não puder ser acessado, use `https://www.recaptcha.net/recaptcha/api/siteverify`. |
| `CAPTCHA_TRUSTED_USERS` | Não definida | E-mails separados por vírgula que o servidor deixa passar sem verificar o captcha. |
| `CAPTCHA_TRUSTED_USERS_REGEX` | Não definida | Uma expressão regular para esses e-mails; ela deve corresponder ao e-mail inteiro. |
| `DEVICE_HISTORY_SECRET` | Não definida | 64 caracteres hexadecimais, por exemplo, gerados com `openssl rand -hex 32`. Permite que um navegador que fez login com um e-mail pule o captcha para esse e-mail por 90 dias. Se não for definida, todo login recebe o captcha. |

* As páginas carregam o script do reCAPTCHA a partir de `www.recaptcha.net`, que também funciona onde `www.google.com` está bloqueado.
* O registro e a redefinição de senha solicitam o captcha todas as vezes. O login LDAP também solicita todas as vezes, mesmo com `DEVICE_HISTORY_SECRET`: ele envia um nome de usuário, não um e-mail.
* Os logins também continuam com limite de taxa: 20 tentativas por minuto por endereço IP e 10 tentativas a cada 2 minutos por e-mail.
* O Ayakaleaf Pro verifica apenas se o Google aceita a resposta. As pontuações e os limites do reCAPTCHA v3 não são compatíveis, e o Google decide quando mostrar um desafio.
* Para testar antes de ter uma chave, use as [chaves de teste](https://developers.google.com/recaptcha/docs/faq) do Google: todas as verificações passam e o widget mostra um aviso, portanto não as use em produção.


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