Seu carrinho está vazio no momento!

Introdução (3 min)
Imagine um restaurante que se lembra do seu pedido favorito. Você entra, e o garçom já sabe que você quer o frango grelhado com arroz integral. Isso é, em essência, o que os cookies fazem na web: armazenam pequenas informações no navegador do cliente para personalizar sua experiência. Em APIs modernas, esse mecanismo é essencial para gerenciar sessões de usuário, carrinhos de compra e preferências individuais. Nesta aula, você vai dominar o uso do cookie-parser, um middleware fundamental no ecossistema Node.js/Express, para manipular cookies com segurança e eficiência em suas aplicações.
Conceito Fundamental (7 min)
Um cookie HTTP é um pequeno fragmento de dados que um servidor envia para o navegador do cliente. O navegador, por sua vez, armazena esse dado e o reenvia ao mesmo servidor em todas as requisições subsequentes. Tecnicamente, um cookie consiste em pares chave-valor, como usuario=joao, além de atributos como data de expiração, domínio e escopo. Em produção, cookies são usados para autenticação (lembrar do usuário logado), personalização (armazenar preferências de idioma) e rastreamento (analisar o comportamento do usuário no site). O cookie-parser simplifica o processo de acesso e manipulação desses cookies no lado do servidor em aplicações Node.js/Express, integrando-se perfeitamente com outros middlewares e frameworks. Uma desvantagem dos cookies é a limitação de tamanho (4KB) e a possível exposição a vulnerabilidades de segurança se não forem implementados corretamente.
Implementação Prática (10 min)
// Importando os módulos necessários
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
const PORT = process.env.PORT || 3000; // Porta dinâmica ou 3000
// Configurando o cookie-parser. O segredo é usado para assinar os cookies,
// aumentando a segurança. Em um ambiente de produção, use uma chave
// secreta forte e aleatória.
app.use(cookieParser('SUA_CHAVE_SECRETA_AQUI'));
app.get('/set-cookie', (req, res) => {
// Configurando um cookie chamado 'meuCookie' com o valor 'chocolate'.
// O { maxAge } define o tempo de vida do cookie em milissegundos.
// httpOnly: true impede o acesso ao cookie via JavaScript,
// protegendo contra Cross-Site Scripting (XSS).
// secure: true garante que o cookie só seja enviado via HTTPS.
res.cookie('meuCookie', 'chocolate', { maxAge: 900000, httpOnly: true, secure: true });
res.send('Cookie definido!');
});
app.get('/get-cookie', (req, res) => {
// Acessando o valor do cookie 'meuCookie'
const meuCookie = req.cookies.meuCookie;
if (meuCookie) {
res.send(Valor do cookie: ${meuCookie});
} else {
res.send('Cookie não encontrado.');
}
});
app.listen(PORT, () => {
console.log(Servidor rodando na porta ${PORT});
});
npm install express cookie-parser
node index.js // ou nodemon index.js
Exercício Hands-On (5 min)
Crie uma rota /deletar-cookie que remove o cookie meuCookie. Dica: utilize o método res.clearCookie('meuCookie'). Teste acessando a rota /set-cookie para criar o cookie, depois /get-cookie para ver seu valor, e finalmente /deletar-cookie para removê-lo. Verifique se o cookie foi realmente deletado tentando acessá-lo novamente através da rota /get-cookie.
Solução:
app.get('/deletar-cookie', (req, res) => {
res.clearCookie('meuCookie');
res.send('Cookie deletado!');
});
Para testar, utilize um client HTTP como Postman ou o próprio navegador para fazer requisições para as rotas. Observe o comportamento dos cookies no seu navegador usando as ferramentas de desenvolvedor. Em caso de erros, verifique o console do seu servidor Node.js e as ferramentas de desenvolvedor do navegador para identificar a causa do problema. Como próximos passos, explore outros atributos de cookies como domain e path para controlar o escopo dos seus cookies e aprofunde-se em conceitos de segurança relacionados à manipulação de cookies em ambientes de produção.
🚀 Pronto para a próxima aula?
Continue sua jornada no desenvolvimento de APIs e domine Node.js & Express!