3 - Autenticação de dois fatores

3.1 - Conceituação

Esta seção visa descrever o mecanismo de autenticação de dois fatores;

A autenticação de 2 fatores é utilizada em alguns momentos do sistema para garantir que o usuário requisitante é de fato o proprietário da conta.

Nos endpoints de transações, se faz necessário, antes de requisitar o endpoint de transação cashout, deve-se solicitar um token e confirmá-lo, definindo um valor para a transação desejada.

3.2 - Reenviar token de 4 digitos

Este endpoint reenvia o token solicitado.

[DELETE] /api/v1/transactions/token

[HEADERS]

PropriedadeDescriçãoObrigatórioTipo
AuthorizationBearer {Token Customer}SimBearer
x-app123SimString

[RESPONSES]

CódigoDescrição
200Token transacional reenviado
400Token transacional não encontrado
PropriedadeDescriçãoObrigatórioTipo
successBooleano que identifica o sucesso ou não do reenvio.SimBoolean
messageMensagem de retorno sobre o cadastro.SimString
codeCódigo de erro.SimInteiro
{
    "message": "Token transacional resetado e enviado via email",
    "success": true,
    "code": 200
} 
PropriedadeDescriçãoObrigatórioTipo
successBooleano que identifica o sucesso ou não do reenvio.SimBoolean
messageMensagem de retorno sobre o cadastro.SimString
codeCódigo de erro.SimInteiro
{
    "success": false,
    "message": "Não foi possível resetar o token transacional",
    "code": 400
}

3.3 - Solicitar autorização de transação através do token de 4 dígitos

[POST] /api/v1/transactions/token/confirm
  • Este endpoint realiza a verificação do token de 4 dígitos.

[HEADERS]

PropriedadeDescriçãoObrigatórioTipo
AuthorizationBearer {Token Customer}SimBearer

[PAYLOAD]

PropriedadeDescriçãoObrigatórioTipo
tokentoken da contaSimString

- AÇÃO DO ENDPOINT -

1 -> Validação inicial do token: verifica se há correspondência entre o token informado e o cliente autenticado.

2 -> Verificação de bloqueio temporário: antes de validar o token, verifica se a conta está temporariamente bloqueada por excesso de tentativas.

3 -> Token inválido: caso não haja correspondência para o token, a quantidade de tentativas restantes é decrementada. Se for a última tentativa, a conta é temporariamente bloqueada e uma mensagem apropriada é retornada.

{
    "token": "1234"
}

[RESPONSES]

CódigoDescrição
200Token transacional confirmado
401Token inválido
403Conta bloqueada temporáriamente
PropriedadeDescriçãoTipo
successBooleano que indica se a validação do token foi bem-sucedida.Boolean
messageMensagem informativa sobre o resultado da validação.String
codeCódigo HTTP que representa o resultado da requisição.Inteiro
{
    "success": true,
    "message": "Token transacional confirmado",
    "code": 200
}
PropriedadeDescriçãoTipo
successBooleano indicando falha na validação do token.Boolean
messageMensagem informando quantas tentativas restam antes do bloqueio.String
codeCódigo HTTP que representa o erro de autenticação.Inteiro
{
    "success": false,
    "message": "3 tentativa(s) restantes antes do bloqueio da conta",
    "code": 401
}
PropriedadeDescriçãoTipo
successBooleano indicando falha na validação do token.Boolean
messageMensagem informando quantas tentativas restam antes do bloqueio.String
codeCódigo HTTP que representa o erro de autenticação.Inteiro
{
    "success": false,
    "message": "Conta bloqueada, tente novamente mais tarde",
    "code": 403
}