Autenticação 1

O processo de autenticação de nossa aplicação deve seguir o seguinte fluxo:

  1. Usuário envia uma requisição POST /auth.
  2. Credenciais de acesso são validadas.
    1. Se credenciais forem inválidas: Usuário recebe uma resposta 401.
    2. Se credenciais forem válidas: Usuário recebe o token de autenticação.

O token deve seguir a seguinte especificação:

Iremos usar um JSON que contenha os dados base do usuário e uma hash para verificação de integridade do conteúdo no campo data. Exemplo:

{
    "data": {
        "id": 123,
        "email": "user@example.com",
        "expires_in": 1725141863
    },
    "hash": "5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286
a2e846f6be03"
}

Toda vez que uma requisição for feita, a aplicação deve verificar a integridade do token seguindo os passos:

  1. Obtém o conteúdo do campo data e converte para string;
  2. Calcula a hash SHA-256 da string obtida no passo anterior;
  3. Compara com a hash no campo hash.

Se as hashes baterem, então o token é válido e a requisição continuará normalmente. Se não, uma resposta 401 deve ser retornada para o usuário.