Desafio ALTCHA para entrar com um e-mail
POST/api/auth/challenge
- Auth
- Pública
- Chave de API:
- Não aceita chave de API
- X-CommunityId
X-CommunityIdEnvie o X-CommunityId da comunidade em que a operação acontece.
Sem login. Igual a `GET /api/auth/challenge`, mas com o trabalho que o login deste e-mail exige agora nesta comunidade (`X-CommunityId`). Use antes de cada `POST /api/auth/login`. Até 5 tentativas que falharam em 15 minutos, o trabalho é o normal (cerca de 1 s num celular médio); a partir daí, cada falha multiplica o trabalho (2, 4, 6, 8 e no máximo 10 vezes, cerca de 10 s), e `parameters.data.level` traz o multiplicador. A conta **nunca é bloqueada** por tentativas erradas: a senha certa entra, com o desafio do nível atual, e zera a contagem. O e-mail vai no corpo para ficar fora de URLs e logs; e-mail sem conta sobe do mesmo jeito. Cadastro e recuperação de senha seguem com `GET`. Mesmo limite de 300 desafios por IP em 15 minutos (429).
Headers
| Nome | Tipo | Descrição |
|---|---|---|
X-CommunityIdobrigatório | string (uuid) | A comunidade do login (a mesma que vai no `POST /api/auth/login`). |
Corpo da requisição application/json
| Nome | Tipo | Descrição |
|---|---|---|
emailobrigatório | string (email) | max 320 |
Respostas
| Código | Descrição |
|---|---|
200 | O desafio, no formato que o widget `altcha` aceita (`parameters` e `signature`). |
400 | E-mail ausente ou longo demais. |
429 | Tentativas demais. O header `Retry-After` diz em quantos segundos tentar de novo. |
503 | A API não consegue verificar o ALTCHA agora (chave não configurada em produção). `param = altcha`. |
Exemplo com curl
curl -X POST "https://api.memberfy.net/api/auth/challenge" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]"}'