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
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| Authorization | Bearer {Token Customer} | Sim | Bearer |
| x-app | 123 | Sim | String |
[RESPONSES]
| Código | Descrição |
|---|
| 200 | Token transacional reenviado |
| 400 | Token transacional não encontrado |
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| success | Booleano que identifica o sucesso ou não do reenvio. | Sim | Boolean |
| message | Mensagem de retorno sobre o cadastro. | Sim | String |
| code | Código de erro. | Sim | Inteiro |
{
"message": "Token transacional resetado e enviado via email",
"success": true,
"code": 200
}
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| success | Booleano que identifica o sucesso ou não do reenvio. | Sim | Boolean |
| message | Mensagem de retorno sobre o cadastro. | Sim | String |
| code | Código de erro. | Sim | Inteiro |
{
"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.
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| Authorization | Bearer {Token Customer} | Sim | Bearer |
[PAYLOAD]
| Propriedade | Descrição | Obrigatório | Tipo |
|---|
| token | token da conta | Sim | String |
- 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.
[RESPONSES]
| Código | Descrição |
|---|
| 200 | Token transacional confirmado |
| 401 | Token inválido |
| 403 | Conta bloqueada temporáriamente |
| Propriedade | Descrição | Tipo |
|---|
| success | Booleano que indica se a validação do token foi bem-sucedida. | Boolean |
| message | Mensagem informativa sobre o resultado da validação. | String |
| code | Código HTTP que representa o resultado da requisição. | Inteiro |
{
"success": true,
"message": "Token transacional confirmado",
"code": 200
}
| Propriedade | Descrição | Tipo |
|---|
| success | Booleano indicando falha na validação do token. | Boolean |
| message | Mensagem informando quantas tentativas restam antes do bloqueio. | String |
| code | Código HTTP que representa o erro de autenticação. | Inteiro |
{
"success": false,
"message": "3 tentativa(s) restantes antes do bloqueio da conta",
"code": 401
}
| Propriedade | Descrição | Tipo |
|---|
| success | Booleano indicando falha na validação do token. | Boolean |
| message | Mensagem informando quantas tentativas restam antes do bloqueio. | String |
| code | Código HTTP que representa o erro de autenticação. | Inteiro |
{
"success": false,
"message": "Conta bloqueada, tente novamente mais tarde",
"code": 403
}