10-¿Qué es JWT? | SEGURIDAD INFORMÁTICA

 https://www.youtube.com/watch?v=P8i2ily6tyE

Tutorial de JWT (JSON Web Tokens) - Guía Completa

¡Hola a todos! Soy Luisina y bienvenidos a este tutorial completo sobre JWT (JSON Web Tokens). En este video vamos a explorar este importante concepto de seguridad en desarrollo web.

¿Qué es JWT?

JWT (JSON Web Token) es un estándar abierto (RFC 7519) que define una forma compacta y autocontenida para transmitir información de forma segura entre partes como un objeto JSON.

Estructura de un JWT

Un JWT está compuesto por tres partes separadas por puntos:

1. Header (Encabezado)

Contiene el tipo de token y el algoritmo de firma.

json
{
  "alg": "HS256",
  "typ": "JWT"
}

2. Payload (Carga útil)

Contiene los "claims" o declaraciones (información sobre la entidad).

json
{
  "sub": "1234567890",
  "name": "Juan Pérez",
  "iat": 1516239022
}

3. Signature (Firma)

Se crea codificando el header y payload, y firmándolos con un secreto.

Ventajas de usar JWT

  • Stateless (Sin estado): No requiere almacenamiento en el servidor

  • Escalabilidad: Ideal para aplicaciones distribuidas y microservicios

  • Seguridad: Firma digital verifica la integridad del token

  • Interoperabilidad: Funciona con múltiples lenguajes y plataformas

Ejemplo práctico en código

javascript
// Instalación de la librería (Node.js)
// npm install jsonwebtoken

const jwt = require('jsonwebtoken');

// Crear un token
const token = jwt.sign(
  { userId: 123, username: 'luisina' },
  'mi_clave_secreta',
  { expiresIn: '1h' }
);

console.log('Token generado:', token);

// Verificar un token
try {
  const decoded = jwt.verify(token, 'mi_clave_secreta');
  console.log('Token decodificado:', decoded);
} catch (error) {
  console.error('Token inválido:', error.message);
}

Flujo de autenticación con JWT

  1. Cliente envía credenciales al servidor

  2. Servidor verifica credenciales y genera JWT

  3. JWT se envía al cliente

  4. Cliente incluye JWT en cabeceras de solicitudes posteriores

  5. Servidor verifica JWT antes de procesar solicitudes

Mejores prácticas de seguridad

  • Usar algoritmos fuertes como HS256 o RS256

  • Establecer tiempos de expiración cortos

  • Almacenar tokens de forma segura (HTTPOnly cookies)

  • Validar siempre la firma del token

  • Usar HTTPS para transmitir tokens

Herramientas útiles

  • jwt.io - Debugger y información sobre JWT

  • Librerías disponibles para todos los lenguajes principales

¡Espero que este tutorial te haya sido útil! No olvides suscribirte al canal y activar la campanita para más contenido sobre desarrollo y seguridad.

¿Tienes preguntas sobre JWT? ¡Déjalas en los comentarios!

Comentarios

Entradas más populares de este blog

1-Autenticación JWT en PHP: Explicación y Ejemplo

8-JWT en 10 minutos - ¿Qué es JWT? ¿Para que sirve? ¿Cuando usarlo? ¿Cómo se usa?

2-JSON Web Tokens