Como lidar com sessões e cookies no Express.js?
Sessões e cookies são recursos essenciais para armazenar dados temporários sobre usuários em aplicações web. No Express.js, podemos gerenciar essas informações utilizando pacotes como express-session e cookie-parser.
1. Instalando as dependências
Antes de começar, instale os pacotes necessários:
npm install express-session cookie-parser dotenv
2. Configurando sessões no Express.js
O pacote express-session
permite armazenar informações da sessão do usuário temporariamente no servidor:
const express = require('express');
const session = require('express-session');
require('dotenv').config();
const app = express();
app.use(express.json());
app.use(session({
secret: process.env.SESSION_SECRET || 'minhaChaveSecreta',
resave: false,
saveUninitialized: true,
cookie: { secure: false } // Defina como 'true' em produção com HTTPS
}));
app.get('/sessao', (req, res) => {
req.session.usuario = { nome: 'João', autenticado: true };
res.json({ mensagem: 'Sessão criada', sessao: req.session.usuario });
});
app.get('/ver-sessao', (req, res) => {
res.json({ sessao: req.session.usuario || 'Nenhuma sessão ativa' });
});
app.listen(3000, () => console.log('Servidor rodando na porta 3000'));
Agora, ao acessar /sessao
, será criada uma sessão armazenando os dados do usuário.
3. Utilizando cookies no Express.js
Os cookies são armazenados no navegador do usuário e podem conter informações persistentes:
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.get('/set-cookie', (req, res) => {
res.cookie('usuario', 'João', { maxAge: 900000, httpOnly: true });
res.json({ mensagem: 'Cookie criado' });
});
app.get('/ver-cookie', (req, res) => {
res.json({ cookie: req.cookies.usuario || 'Nenhum cookie encontrado' });
});
app.get('/remover-cookie', (req, res) => {
res.clearCookie('usuario');
res.json({ mensagem: 'Cookie removido' });
});
Conclusão
Sessões e cookies no Express.js são úteis para autenticação, personalização da experiência do usuário e armazenamento temporário de informações. Utilize cookies para dados leves e sessões para dados sensíveis e temporários.
Por que sessões e cookies são importantes para aplicações web?
A autenticação baseada em sessões e cookies é amplamente usada em aplicações web tradicionais. Muitos sistemas utilizam sessões para armazenar estados temporários do usuário, enquanto cookies podem ser usados para personalização e persistência de informações.
Plataformas como Facebook e Amazon utilizam cookies para lembrar preferências do usuário, enquanto sistemas bancários costumam usar sessões para garantir que os dados sejam apagados após o logout.
Algumas aplicações:
- Gerenciamento de autenticação de usuários
- Armazenamento de preferências do usuário
- Manutenção de estados temporários
- Controle de sessões em aplicações bancárias
- Segurança em transações online
Dicas para quem está começando
- Use
express-session
para armazenar sessões de forma eficiente. - Habilite
cookie-parser
para manipular cookies facilmente. - Configure
httpOnly: true
para evitar acesso malicioso aos cookies. - Defina um tempo de expiração adequado para os cookies e sessões.
- Utilize HTTPS em produção para maior segurança dos dados armazenados.
Contribuições de Henrique Almeida