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
- Quando o token de sessão (
session) expira, orefreshTokené utilizado para solicitar um novo token de sessão. - O servidor responde com novos tokens
sessionerefreshToken, 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
- Uso do
refreshToken: OrefreshTokenatual deve ser enviado como um cookie na requisição. - Novos Valores: A resposta incluirá novos valores para
sessionerefreshToken, que devem ser utilizados nas próximas requisições. - Ambiente Web: Em aplicações web, esses tokens serão gerenciados automaticamente pelo navegador, desde que configurados corretamente.
- 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.
- 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.