Sesiones vs JWT
- • Sesiones: estado en servidor + cookie
- • JWT: token firmado, estado en cliente
Hash de contraseñas
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash(password, 10);
const ok = await bcrypt.compare(password, hash);
JWT básico
const jwt = require('jsonwebtoken');
const token = jwt.sign({ userId }, process.env.JWT_SECRET, {
expiresIn: '1h'
});
Middleware de autorización
function requireAuth(req, res, next) {
const header = req.headers.authorization;
if (!header) return res.status(401).json({ error: 'Token requerido' });
next();
}
💡 Buenas prácticas
- ✓ Expira tokens y refresca sesiones
- ✓ Usa httpOnly en cookies
- ✓ Implementa revocación cuando sea necesario