Pular para o conteúdo principal

Renovação de Token (Refresh Token)

O GranaTech utiliza um sistema de renovação de token para garantir que o usuário mantenha sua sessão ativa sem a necessidade de fazer login novamente quando o token de sessão expira. O processo é feito através do refreshToken, que permite a geração de um novo session token.

Fluxo de Renovação de Token

  1. Quando o token de sessão (session) expira, o refreshToken é utilizado para solicitar um novo token de sessão.
  2. O servidor responde com novos tokens session e refreshToken, que devem ser usados em requisições subsequentes.

Como Renovar o Token

Para renovar o token, envie uma requisição para o endpoint de renovação, incluindo o refreshToken como um cookie.

Exemplo de Requisição com curl

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 refreshToken atual. O parâmetro -i é usado para incluir os cabeçalhos na resposta, onde os novos tokens serão retornados.

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 sobre a Renovação

  1. Uso do refreshToken: O refreshToken atual deve ser enviado como um cookie na requisição.
  2. Novos Valores: A resposta incluirá novos valores para session e refreshToken, que devem ser utilizados nas próximas requisições.
  3. Ambiente Web: Em aplicações web, esses tokens serão gerenciados automaticamente pelo navegador, desde que configurados corretamente.
  4. Ambiente Não-Web: Em aplicações que não utilizam o navegador, você precisará extrair manualmente os novos valores dos cabeçalhos de resposta e utilizá-los nas próximas requisições.
  5. Segurança: Sempre use HTTPS para garantir que os tokens sejam transmitidos de forma segura.

Manter a Sessão Ativa

A renovação de token é essencial para manter a sessão do usuário ativa. Configure a aplicação para monitorar o vencimento do session token e iniciar automaticamente a renovação com o refreshToken antes que o token de sessão expire.