Voltar para o Blog Iniciante 5 min

Guia Rápido: Como Funciona a Autenticação com JSON Web Token (JWT)

Aprenda como utilizar JSON Web Tokens (JWT) para autenticação segura de usuários em aplicações web.

O que é JWT?

JSON Web Token (JWT) é um padrão para autenticação segura baseado em tokens, amplamente utilizado em APIs e aplicações web.

Estrutura de um JWT

Um JWT é composto por três partes:

header.payload.signature

Cada parte é codificada em Base64 e separada por pontos (.).

Gerando um Token JWT

Podemos criar um JWT usando Node.js e a biblioteca jsonwebtoken:

npm install jsonwebtoken

Crie um arquivo gerarToken.js:

const jwt = require('jsonwebtoken');
const segredo = 'minhaChaveSecreta';

const token = jwt.sign({ id: 1, nome: 'João' }, segredo, { expiresIn: '1h' });
console.log('Token JWT:', token);

Validando um Token JWT

Para verificar um token, use:

jwt.verify(token, segredo, (err, decoded) => {
  if (err) {
    console.log('Token inválido');
  } else {
    console.log('Dados do usuário:', decoded);
  }
});

Exemplo Prático

Crie um servidor Express.js para autenticar usuários:

const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();
app.use(express.json());

const segredo = 'minhaChaveSecreta';

app.post('/login', (req, res) => {
  const { usuario } = req.body;
  if (!usuario) return res.status(400).send('Usuário inválido');
  const token = jwt.sign({ usuario }, segredo, { expiresIn: '1h' });
  res.json({ token });
});

app.listen(3000, () => console.log('Servidor rodando em http://localhost:3000'));

Próximos passos

Implemente autenticação com JWT no frontend e proteja rotas na sua API.