Autenticação × JWT

Dois padrões que costumam ser trocados um pelo outro, e o que de fato os separa.

Em uma frase

Autenticação é o ato de provar identidade (sessão + cookie httpOnly é o default web). JWT é um formato de credencial assinada — útil como access token, péssimo como desculpa para token eterno no localStorage.

Critério a critério

  • O que é, exatamente?

    Autenticação
    O processo e o desenho de provar quem você é.
    JWT
    Um envelope assinado com claims e prazo.
  • Onde mora a prova, no desenho clássico?

    Autenticação
    Id opaco no cookie httpOnly; estado no servidor.
    JWT
    No próprio token que o cliente carrega (Bearer).
  • Logout imediato?

    Autenticação
    Apaga a sessão no store — credencial morre na hora.
    JWT
    Só de verdade com TTL curto, denylist ou rotação de chave.
  • Principal risco se guardar mal?

    Autenticação
    CSRF se o cookie não tiver SameSite/anti-CSRF.
    JWT
    XSS se o token estiver no localStorage — e cópia até o exp.
  • Precisa um do outro?

    Autenticação
    Não: sessão clássica autentica sem JWT.
    JWT
    Não: JWT sozinho não é 'auth completa' — ainda falta login, MFA, refresh.

Quando escolher cada um

Autenticação

App web com logout, revogação e cookie httpOnly — identidade no servidor.

Ver o conceito completo

JWT

API/microsserviços ou OAuth em que verificação local de access curto importa.

Ver o conceito completo

Por que confundem

Tratar JWT como sinônimo de autenticação. JWT é formato; autenticação é o problema. Dá para autenticar sem JWT e dá para usar JWT sem ter desenhado auth de verdade.