Skip to content

Conclui o login com o código da verificação em duas etapas

POST/api/auth/login/two-factor

Auth
Public
API key:
No API key accepted
X-CommunityId
X-CommunityId Send the X-CommunityId of the community the operation happens in.
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.

Segundo passo do login quando `POST /api/auth/login` respondeu `twoFactorRequired: true`. Mande o `challengeId` com o `code` (6 dígitos, WhatsApp ou SMS) **ou** um `recoveryCode` (um dos 10 códigos de recuperação, que deixa de valer e dispara o e-mail de alerta). A resposta é a mesma do login (`member`, `token`, `mustChangePassword`), mais `deviceToken` quando `rememberDevice: true` (guarde no navegador e mande no próximo `POST /api/auth/login`: por 90 dias o código não é pedido) e, depois de um código de recuperação, `recoveryCodeUsed` e `recoveryCodesRemaining`.

Código errado: **400** `param = code` com as tentativas restantes (`data.attemptsLeft`, 5 por código); sem tentativas, peça outro (`/resend`). O desafio vale 15 minutos e aceita 10 erros no total; depois, **400** `param = challengeId` (`TWO_FACTOR_CHALLENGE_INVALID`): faça o login de novo. Público; 60 chamadas por IP em 15 minutos (429).

Headers

NameTypeDescription
X-CommunityIdoptionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Request body application/json

NameTypeDescription
challengeIdrequiredstring
codeoptionalstring
recoveryCodeoptionalstring
rememberDeviceoptionalboolean

Responses

StatusDescription
200Login concluído (mesma forma do `POST /api/auth/login`).
400Requisição inválida — falha de validação.
429Tentativas demais. O header `Retry-After` diz em quantos segundos tentar de novo.

curl example

curl -X POST "https://api.memberfy.net/api/auth/login/two-factor" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"challengeId":"q3V0bWJmZXhhbXBsZS1jaGFsbGVuZ2UtaWQtZm9yLWRvY3M"}'