MOX
Produtos
Saiba mais sobre nossos serviços adicionais
Recursos e Elementos
Retornar

MOXAndrés Villalobos
13-09-2025

Tutorial Node.js: Criando uma API REST com autenticação JWT

No mundo atual do desenvolvimento web, as APIs REST se tornaram um padrão para permitir a comunicação entre diferentes aplicações. O Node.js, graças à sua robustez e flexibilidade, é uma das plataformas mais utilizadas para a construção de APIs eficientes e escaláveis. Neste tutorial, vamos nos concentrar na construção de uma API REST em Node.js que inclui autenticação usando JSON Web Tokens (JWT), um método seguro para transmitir informações entre partes como um objeto JSON.

Por que usar JWT para autenticação?

O uso de JWTs para autenticação e gerenciamento de sessões é popular devido à sua capacidade de serem autocontidos, o que significa que contêm todas as informações necessárias sobre o usuário. Além disso, são seguros porque são assinados digitalmente. Isso reduz a necessidade de armazenar informações no servidor, tornando-as ideais para APIs escaláveis.

Configurando nosso projeto Node.js

Primeiro, criaremos um novo projeto Node.js usando npm:

$ mkdir myapi && cd myapi
$ npm init -y

Em seguida, instalaremos as bibliotecas necessárias:

$ npm install express jsonwebtoken bcryptjs

Elas incluem Express, um framework Node.js popular; jsonwebtoken, para lidar com JWTs; e bcryptjs, para criptografar senhas.

Criando o servidor básico

Abrimos nosso arquivo index.js e implementamos um servidor básico:

const express = require(express);
const app = express();
app.use(express.json());
app.listen(3000, () => console.log(Server running on port 3000));

Este código inicia um servidor na porta 3000 e habilita o tratamento de solicitações JSON.

Tratando usuários e segurança

Adicionaremos endpoints básicos para registrar usuários e tratar sua autenticação. Criaremos um manipulador simples para ele:

// Simulação de banco de dados
let users = [];

app.post(/register, async (req, res) => {
const { username, password } = req.body;
const hashedPassword = await bcrypt.hash(password, 10);
users.push({ username, password: hashedPassword });
res.status(201).send(Usuário registrado com sucesso);
});

app.post(/login, async (req, res) => {
const { username, password } = req.body;
const user = users.find(user => user.username === username);

if (!user || )) {
return res.status(401).send(Credenciais incorretas);
}

const token = jwt.sign({ username: user.username }, secretkey);
res.json({ token });
});

Protegendo nossas rotas com JWT

Para proteger nossas rotas, precisaremos de uma função de middleware que valide os tokens:

const authenticateJWT = (req, res, next) => {
const token = req.header(Authorization);

if (!token) return res.sendStatus(403);

jwt.verify(token.split( )[1], secretkey, (err, user) => {
if (err) return res.sendStatus(403);

req.user = user;
next();
});
};;

Podemos então usar esse recurso em quaisquer rotas que queiramos proteger.

Juntando tudo

Você pode ver como esses recursos combinados possibilitam a construção de aplicativos robustos. Ao usar JWTs, não apenas protegemos nossas rotas com VPNs e cifras fortes, mas também melhoramos a experiência do usuário, eliminando a necessidade constante de login.

Mais sobre desenvolvimento com Mox aqui.

Outros artigos que podem lhe interessar

Servicios

Hospedagem web rápida e segura, projetada para crescer com você.

Seus sites carregam mais rápido, estão sempre disponíveis e contam com suporte especializado 24 horas por dia, 7 dias por semana. Certificados SSL, backups automáticos e um painel intuitivo estão incluídos. Ideal para lojas, blogs ou empresas que não conseguem parar.

Conheça a Hospedagem

Navegue sem limites com uma VPN rápida e privada.

Proteja sua identidade com criptografia de nível militar, ignore bloqueios geográficos e acesse todo o conteúdo do mundo. Sem registros, IP dedicado opcional e conexões estáveis em todos os seus dispositivos.

Mais sobre VPN chilena

Potência e controle totais com servidores VPS dedicados.

Obtenha acesso root, alto desempenho com unidades NVMe e isolamento completo. Escale seus recursos facilmente para hospedar aplicativos, sistemas ou projetos web com tráfego constante. Segurança avançada e suporte dedicado sempre que você precisar.

Conheça o Cloud VPS