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');
}