TechLead

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