JWT (JSON Web Token) es un estándar para intercambiar información de forma segura entre dos partes (por ejemplo, cliente y servidor).
- Es un token (una cadena de texto) que contiene datos en formato JSON.
- Está firmado digitalmente, lo que garantiza que la información no fue alterada.
- Se usa mucho en autenticación: cuando un usuario inicia sesión, el servidor le entrega un JWT que luego se envía en cada petición para demostrar que está autenticado.
¿Para qué sirve?
- Autenticación: comprobar que un usuario está logueado sin necesidad de guardar su sesión en el servidor.
- Autorización: verificar si el usuario tiene permisos para acceder a ciertos recursos.
- Intercambio de información: transmitir datos de manera confiable entre sistemas.
Estructura de un JWT
Un JWT tiene 3 partes separadas por puntos:
HEADER.PAYLOAD.SIGNATURE
- Header: tipo de token y algoritmo de firma.
- Payload: la información (ej. id de usuario, roles).
- Signature: la firma que asegura que el token no fue modificado.
Ejemplo. Imagina que un usuario inicia sesión y el servidor le da este JWT:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 .eyJ1c2VySWQiOjEsInJvbGUiOiJhZG1pbiJ9 .sflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Header (decodificado):
{ "alg": "HS256", "typ": "JWT" }
Payload (decodificado):
{ "userId": 1, "role": "admin" }
Signature: se genera con una clave secreta para validar que nadie lo cambió.
Veamos un diagrama donde se describe el logeo de un cliente :
Un uso práctico puede ser cuando el cliente hace una petición al servidor, envía el JWT en la cabecera:
Authorization: Bearer <token>
El servidor lo valida y, si es correcto, sabe quién es el usuario y qué permisos tiene.
Para más información puedes consultar el sitio: https://www.jwt.io/
Concluyendo, JWT es como un pase digital firmado que dice quién eres y qué puedes hacer, sin necesidad de que el servidor guarde tu sesión.
Continuaremos con este tema en próximas entregas.
Enlaces:
https://www.jwt.io/https://jwtauditor.com/


Comentarios
Publicar un comentario