Autenticación en Express.js
Implementa sesiones, JWT y middleware de autorización
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);
Middleware de auth
function requireAuth(req, res, next) {
const token = req.headers.authorization;
if (!token) return res.status(401).json({ error: 'Token requerido' });
next();
}
Roles y permisos
function requireRole(role) {
return (req, res, next) => {
if (req.user.role !== role) return res.status(403).json({ error: 'Prohibido' });
next();
};
}
💡 Seguridad
- ✓ Usa HTTPS y cookies httpOnly
- ✓ Expira tokens y refresca sesiones
- ✓ Valida input en login/registro