PUT
https://api.myidvirtual.com
/
token
/
refreshToken
Renovar Token
curl --request PUT \
  --url https://api.myidvirtual.com/token/refreshToken \
  --header 'Content-Type: application/json' \
  --data '
{
  "oldToken": "<string>"
}
'
{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 86400,
  "user": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "email": "[email protected]",
    "name": "João Silva",
    "role": "CUSTOMER"
  }
}

Renovar Token

Endpoint para renovação do token JWT de autenticação. Permite obter um novo token válido sem necessidade de fazer login novamente.

Parâmetros

Request Body

oldToken
string
required
Token JWT atual que será renovado

Responses

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 86400,
  "user": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "email": "[email protected]",
    "name": "João Silva",
    "role": "CUSTOMER"
  }
}

Exemplo de Requisição

curl --location --request PUT 'http://localhost:3333/token/refreshToken' \
--header 'Content-Type: application/json' \
--data-raw '{
  "oldToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}'

Segurança

Nunca armazene tokens em lugares inseguros:
  • ❌ LocalStorage exposto a XSS
  • ❌ Cookies sem HttpOnly
  • ❌ Variáveis globais JavaScript
  • ✅ HttpOnly Cookies (recomendado)
  • ✅ SessionStorage (melhor que localStorage)

Armazenamento Seguro

// Usar SessionStorage ao invés de localStorage
sessionStorage.setItem('access_token', token);

// Ou configurar cookie HttpOnly no backend
// Set-Cookie: access_token=xxx; HttpOnly; Secure; SameSite=Strict

Troubleshooting

ProblemaCausaSolução
Token não renovaToken já expiradoFazer login novamente
Renovação em loopErro no backendVerificar logs do servidor
401 após renovarToken inválidoLimpar storage e relogar
Múltiplas renovaçõesRequisições simultâneasImplementar fila de renovação

Próximos Passos

  1. Implementar refresh token separado
  2. Adicionar revogação de tokens
  3. Configurar rate limiting para renovações
  4. Criar blacklist de tokens inválidos