Sobes.tech
Junior — Middle

Quais são as principais vantagens e desvantagens de usar JSON Web Token para autenticação e autorização?

sobes.tech IA

Resposta da IA

Vantagens do JSON Web Token (JWT):

  • Autosuficiência: O JWT contém todas as informações necessárias para autenticação e autorização, permitindo não manter estado no servidor.
  • Escalabilidade: graças à ausência de estado no servidor, é fácil escalar as aplicações.
  • Facilidade de transmissão: JWT é uma string compacta, conveniente para transmissão em cabeçalhos HTTP ou URLs.
  • Segurança: O JWT pode ser assinado (por exemplo, usando HMAC ou RSA), garantindo a integridade e autenticidade do token.

Desvantagens do JWT:

  • Impossibilidade de revogação: após emitir um JWT, não é fácil revogar o token antes de sua expiração, a menos que um mecanismo adicional seja implementado.
  • Tamanho do token: JWT pode ser bastante grande, especialmente se contiver muitos dados, aumentando a carga na rede.
  • Segurança do armazenamento: se o token for armazenado no cliente (por exemplo, em localStorage), pode ser vulnerável a ataques XSS.
  • Complexidade de atualização: atualizar os dados dentro do token requer emitir um novo token.

Exemplo de uso do JWT em Node.js:

const jwt = require('jsonwebtoken');

// Criação do token
const token = jwt.sign({ userId: 123 }, 'chave_secreta', { expiresIn: '1h' });

// Verificação do token
try {
  const payload = jwt.verify(token, 'chave_secreta');
  console.log(payload.userId);
} catch (e) {
  console.error('Token inválido ou expirado');
}