← Voltar ao Blog

JSON Web Tokens (JWT): Guia de Autenticação

Guia completo sobre autenticação JWT. Aprenda a estrutura, implementação, melhores práticas de segurança e renovação de tokens.

Big JSON Team14 min de leituraavançado
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

14 min read

# JSON Web Tokens (JWT): Guia de Autenticação

O JSON Web Token (JWT) é um formato de token compacto e seguro para URLs, usado para transmitir informações entre partes de forma confiável. É o padrão para autenticação moderna em APIs.

Estrutura de um JWT

Um JWT é composto por três partes separadas por pontos: header.payload.signature.

  • Header: Contém o tipo do token (JWT) e o algoritmo de assinatura.
  • Payload: Contém os dados (claims), como o ID do usuário e a data de expiração.
  • Signature: Garante que o token não foi alterado no caminho.
  • ---

    Implementação Simples (Node.js)

    Usando a biblioteca jsonwebtoken:

    import jwt from 'jsonwebtoken';
    
    

    // Criar o token

    const token = jwt.sign(

    { usuarioId: 123, role: 'admin' },

    process.env.JWT_SECRET,

    { expiresIn: '1h' }

    );

    // Verificar o token

    try {

    const decodificado = jwt.verify(token, process.env.JWT_SECRET);

    console.log('Bem-vindo, ' + decodificado.usuarioId);

    } catch (erro) {

    console.log('Token inválido');

    }

    ---

    Estratégia de Refresh Token

    Para manter o usuário logado com segurança, usamos dois tokens:

    • Access Token: Curta duração (ex: 15 min). Usado em cada requisição.
    • Refresh Token: Longa duração (ex: 7 dias). Usado apenas para obter um novo Access Token quando o anterior expirar.

    Melhores Práticas de Segurança

    • Nunca guarde senhas ou dados sensíveis dentro do JWT (ele pode ser lido por qualquer um).
    • Use segredos fortes e rotacione suas chaves periodicamente.
    • Utilize Cookies HttpOnly para armazenar tokens no navegador, protegendo-os contra ataques de XSS.

    Conclusão

    O JWT é uma ferramenta poderosa para autenticação sem estado (stateless). Quando implementado corretamente com Refresh Tokens e armazenamento seguro, ele oferece o equilíbrio perfeito entre segurança e experiência do desenvolvedor.

    Share:

    Artigos Relacionados

    Read in English