Token
Cadena digital que autentica y autoriza a un usuario en sistemas web. La gracia del JWT es que es stateless: el servidor no guarda nada, toda la info viaja en el token. Pero ojo — si no podés revocarlo en el momento, tenés un problema de seguridad.
Definición
Un token es una cadena de caracteres que representa la identidad o los permisos de un usuario dentro de un sistema. En autenticación web, los tokens permiten implementar sesiones stateless (sin estado) donde el servidor no necesita almacenar información de sesión porque el token contiene los datos necesarios. Los JWT (JSON Web Tokens) son el estándar más utilizado por su estructura autocontenida, firmada digitalmente y portable entre servicios.
Ejemplos
- • Un usuario inicia sesión y recibe un JWT que debe enviar en el header Authorization de cada petición para acceder a recursos protegidos
- • Un access token expira cada 15 minutos y se renueva automáticamente mediante un refresh token almacenado de forma segura
Ejemplo de código
// Verificar un JWT en Node.js con el paquete jsonwebtoken
const jwt = require('jsonwebtoken');
function autenticar(req, res, next) {
const authHeader = req.headers.authorization;
if (!authHeader || !authHeader.startsWith('Bearer ')) {
return res.status(401).json({ error: 'Token requerido' });
}
const token = authHeader.split(' ')[1];
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
req.usuario = decoded;
next();
} catch (error) {
if (error.name === 'TokenExpiredError') {
return res.status(401).json({ error: 'Token expirado', codigo: 'TOKEN_EXPIRED' });
}
return res.status(403).json({ error: 'Token inválido' });
}
}