Estándar para crear tokens de acceso seguros que permiten la autenticación entre cliente y servidor.
Los tokens JWT se utilizan para validar sesiones en aplicaciones web. Contienen información codificada en Base64.
// Estructura de un JWT // header.payload.signature // Header: algoritmo y tipo { "alg": "HS256", "typ": "JWT" } // Payload: datos del usuario { "sub": "user123", "name": "Juan", "role": "admin", "iat": 1516239022, "exp": 1516242622 } // Crear JWT (backend) import jwt from 'jsonwebtoken'; const token = jwt.sign( { userId: user.id, role: user.role }, process.env.JWT_SECRET, { expiresIn: '24h' } ); // Verificar JWT const decoded = jwt.verify(token, process.env.JWT_SECRET); // Middleware de autenticación function authMiddleware(req, res, next) { const token = req.headers.authorization?.split(' ')[1]; if (!token) return res.status(401).json({ error: 'No autorizado' }); try { req.user = jwt.verify(token, process.env.JWT_SECRET); next(); } catch { res.status(401).json({ error: 'Token inválido' }); } }