Acessar artigos

1. Introdução

Ter uma etapa de autenticação antes do envio de dados para o endpoint é essencial para proteção tanto do usuário como da API. O processo de autenticação valida a identidade do usuário através de um protocolo que envia as credenciais do cliente, solicitando o acesso, para o servidor remoto, utilizando criptografia. O servidor deve então ser capaz de validar corretamente o usuário final.
Essa etapa de autenticação fornece endpoints ao usuário para que seja possível o registro, login, logout e acesso à API - caso a validação seja confirmada. Também permite lidar com as situações de credenciais inválidas.

Serviços inclusos na API de autenticação:

RecursosServiçosEndpoints
Registrar UsuárioRegistro/authentication/register
Verificar TokenToken de acesso/authentication
LoginAutenticação do Usuário/authentication/login
LogoutLogout do Usuário/authentication/logout
Atualizar TokenToken Atualizado/authentication/refresh

2. URL Base

api.tagcenter.io

3. Registro

A função register() recebe como parâmetro RegisterDto e delega a criação do usuário atual para a função usersService.creat(). Retorna o usuário criado ou código de erro caso não tenha sido bem sucedido.

O Endpoint é criado através da rota:

Post /authentication/register

Body:

{
  email: string,
  name: string,
  password: string,
  phone_number: string
}

Exemplo:

{
  "email": "jomilic588@3dinews.com",
  "name": "Test Register",
  "password": "123456",
  "phone_number": "+12057404135"
}

Retorno do exemplo:

{
  "email": "jomilic588@3dinews.com",
  "phoneNumber": "+12057404135",
  "name": "Test Register",
  "id": "115",
  "active": false,
  "isRegisteredWithGoogle": false,
  "isTwoFactorAuthenticationEnabled": false,
  "isEmailConfirmed": false,
  "isPhoneNumberConfirmed": false
}

4. Verificar Token

Fornece o token de acesso para a autenticação para o usuário. O token de acesso é uma string que permite a confirmação de que as requisições que serão feitas pertencem a uma sessão autorizada. O token fornecido é armazenado em um cookie com httponly setado em True e expira em 24 horas.

Rota utilizada:

Get /authentication

5. Login

A função getAuthenticatedUser() recebe como parâmetro o email do usuário e a senha e delega a verificação para a função verifyPassword(). Retorna o usuário autorizado ou erro 102.

Rota utilizada:

Post /authentication/login

Body:

{
  email: string,
  password: string
}

Exemplo:

{
  "email": "yourname@domain.com",
  "password": "123456"
}

Retorno do exemplo:

{
  "id": "116",
  "email": "yourname@domain.com",
  "phoneNumber": "+12000000000",
  "name": "Test Auth",
  "active": true,
  "isRegisteredWithGoogle": false,
  "isTwoFactorAuthenticationEnabled": false,
  "isEmailConfirmed": true,
  "isPhoneNumberConfirmed": false,
  "stripe_customer_id": null,
  "user_language": "pt-BR",
  "avatar": null
}
ChaveValorDescrição
emailstringEmail de cadastro do usuário
phoneNumberstringNúmero de telefone do usuário
namestringNome do usuário
idstringIdentificador do usuário
activebooleanUsuário ativo ou não
isRegisteredWithGooglebooleanUsuário criado por integração com google
IsTwoFactorAuthenticationEnabledbooleanVerifica se há autenticação em dois fatores ativa para
este usuário
isEmailConfirmedbooleanVerifica se o email já foi confirmado
isPhoneNumberConfirmedbooleanVerifica se o telefone já foi confirmado
stripe_customer_idstringIdentificação do usuário para o sistema de cobrança
user_languagestringLinguagem escolhida pelo usuário
avatarstringUrl da imagem do avatar do usuário

6. Logout

Responsável por terminar a sessão do usuário e dissociar o usuário autenticado das próximas requisições feitas pelo cliente.

Rota utilizada:

Post /authentication/logout

7. Atualizar Token

Request de um novo token de acesso.

Rota utilizada:

Get /authentication/refresh

8. Confirmação de email

Rota utilizada:

Post /authentication/confirm-email

Body:

{
  token: string;
}

Exemplo:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5"
}

Retorno do exemplo:

{
  "generatedMaps": [],
  "raw": [],
  "affected": 1
}

9. Confirmação de telefone

A função confirmPhoneNumber() recebe como parâmetro o usedId, o número do telefone e o código de verificação. Envia o código de confirmação via sms para o número de celular registrado do usuário e armazena a userId caso seja aprovado. Se não aprovado, envia o código de erro 103.

Rotas utilizadas:

Contendo os cookies de autenticação e refresh -> inicia o processo enviando o código de confirmação via sms para o número registrado do usuário

Post /sms/initiate-verification

Contendo os cookies de autenticação e refresh

Post /sms/check-verification-code

Body:

{
  code: string
}

Exemplo:

{
  "code": "809678"
}

Retorno do exemplo:

201 created

10. Códigos de Resposta HTTP

CódigoDescrição
101Something went wrong
102Wrong credentials provided
100User with that email already exists
201The request has succeeded
401Unauthorized

crosslistmenu-circle