Saltar para o conteúdo

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

POST/api/auth/login/two-factor

Auth
Pública
Chave de API:
Não aceita chave de API
X-CommunityId
X-CommunityId Envie o X-CommunityId da comunidade em que a operação acontece.

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

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

Corpo da requisição application/json

NomeTipoDescrição
challengeIdobrigatóriostring
codeopcionalstring
recoveryCodeopcionalstring
rememberDeviceopcionalboolean

Respostas

CódigoDescrição
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.

Exemplo com curl

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"}'