← voltar para o feed
APIs6 min de leitura

Autenticação com JWT na prática (sem enrolação)

Sem filosofia, sem debate OAuth vs JWT. O setup mínimo e seguro que uso em todos os projetos com refresh token rotativo.

#jwt#auth#segurança#node.js

JWT é ferramenta. Parem de tratar como religião.

O fluxo mínimo decente

  • Access token curto (15 min).
  • Refresh token longo (7 dias), rotativo, armazenado em httpOnly cookie.
  • Blacklist de refresh tokens usados em Redis.

Gerando os tokens

function issueTokens(user: { id: string; role: string }) {
  const access = jwt.sign(
    { sub: user.id, role: user.role },
    ACCESS_SECRET,
    { expiresIn: "15m" }
  );
  const refresh = jwt.sign(
    { sub: user.id, jti: crypto.randomUUID() },
    REFRESH_SECRET,
    { expiresIn: "7d" }
  );
  return { access, refresh };
}

Os 3 erros que eu já cometi

  1. Guardar access token em localStorage. XSS come no café da manhã.
  2. Não rotacionar refresh token. Uma fuga e o atacante vive para sempre.
  3. Botar muita informação no payload. Token cresce e vira bagagem.

Autenticação não é lugar de criatividade. Copie um padrão testado e seja feliz.

Gostou do post?

Compartilha com alguém que tá resolvendo o mesmo problema.