Pular para o conteúdo principal

Tokens de Autenticação

Após um login bem-sucedido, o GranaTech fornece dois tokens essenciais para autenticação contínua: session e refreshToken. Estes tokens são usados para validar o usuário e manter a sessão ativa. Abaixo estão os detalhes e exemplos de uso desses tokens.

Tipos de Tokens

  • session: Este é o token de sessão atual e é usado para autenticar requisições.
  • refreshToken: Este token é usado para renovar a sessão sem a necessidade de re-login.

Ambos os tokens são enviados como cookies nas requisições subsequentes. Eles são configurados automaticamente pelo servidor após a autenticação e incluídos em todas as requisições para o domínio.

Usar os Tokens em Requisições

Para realizar requisições autenticadas, é necessário incluir os tokens session e refreshToken como cookies.

Exemplo com curl

curl -X GET https://bff-dev.granatech.com.br/api/algum-endpoint \
-H "Cookie: session=SEU_TOKEN_DE_SESSAO_AQUI; refreshToken=SEU_REFRESH_TOKEN_AQUI"

Substitua SEU_TOKEN_DE_SESSAO_AQUI e SEU_REFRESH_TOKEN_AQUI pelos valores de tokens que você recebeu na resposta de login.

Renovação de Token

Quando o token de sessão (session) expira, o refreshToken é usado para obter um novo token de sessão. Para renovar o token usando curl, utilize o seguinte comando:

curl -X POST https://bff-dev.granatech.com.br/api/auth/refresh-token \
-H "Content-Type: application/json" \
-H "Cookie: refreshToken=SEU_REFRESH_TOKEN_ATUAL" \
-d '{}' \
-i

Substitua SEU_REFRESH_TOKEN_ATUAL pelo valor do seu refreshToken atual.

Exemplo de Resposta de Renovação

{
"status": "success",
"data": "Novo token de sessão gerado com sucesso.",
"session": "novo_token_de_sessao_exemplo",
"refreshToken": "novo_token_de_refresh_exemplo"
}

Após uma renovação bem-sucedida, o servidor retornará novos valores para session e refreshToken nos cabeçalhos Set-Cookie. Estes novos tokens devem ser usados para futuras requisições e renovações.

Notas Importantes

  1. O refreshToken atual deve ser enviado como um cookie na requisição de renovação.
  2. A resposta incluirá novos valores para session e refreshToken.
  3. Em aplicações web, esses tokens são gerenciados automaticamente pelo navegador, se configurados corretamente.
  4. Algumas ferramentas de teste de API, como Postman e Insomnia, gerenciam automaticamente os tokens via cookies.
  5. Em aplicações não-web, você precisará extrair manualmente os novos valores dos cabeçalhos de resposta e utilizá-los nas requisições futuras.
  6. Sempre utilize HTTPS para garantir a segurança dos tokens.