Desafio ALTCHA para entrar com um e-mail
POST/api/auth/challenge
- Auth
- Pública
- Clave de API:
- No acepta clave de API
- X-CommunityId
X-CommunityIdEnvía el X-CommunityId de la comunidad en la que ocurre la operación.
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
| Nombre | Tipo | Descripción |
|---|---|---|
X-CommunityIdobligatorio | string (uuid) | A comunidade do login (a mesma que vai no `POST /api/auth/login`). |
Cuerpo de la solicitud application/json
| Nombre | Tipo | Descripción |
|---|---|---|
emailobligatorio | string (email) | max 320 |
Respuestas
| Código | Descripción |
|---|---|
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`. |
Ejemplo con 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]"}'