Logo Studenta

JSON WEB TOKEN

¡Estudia con miles de materiales!

Vista previa del material en texto

JSON WEB TOKEN 
 
JWT (JSON Web Token) es un estándar abierto (RFC 7519) que define un método 
compacto y seguro para transmitir información entre dos partes en forma de un objeto 
JSON. Está compuesto por tres secciones separadas por puntos: el encabezado (header), el 
cuerpo (payload) y la firma (signature). Los JWT se utilizan comúnmente para autenticar 
usuarios y permitir que las partes se comuniquen de forma segura sin necesidad de 
mantener un estado de sesión en el servidor. 
 
Para implementar JWT en una página web grande, primero debes asegurarte de que el 
servidor esté configurado para emitir y verificar JWT. También necesitarás utilizar 
bibliotecas de JWT en el lado del cliente para administrar y enviar los tokens. A 
continuación, se describe cómo se instala y se utiliza en un ejemplo sencillo: 
 
Paso 1: Instalación 
En el lado del servidor, puedes utilizar una biblioteca específica para tu lenguaje de 
programación, como `jsonwebtoken` para Node.js o `PyJWT` para Python. Estas 
bibliotecas te permitirán generar y verificar tokens JWT. Puedes instalarlas usando `npm` 
(para Node.js) o `pip` (para Python). 
 
Ejemplo con Node.js y `jsonwebtoken`: 
 
```bash 
npm install jsonwebtoken 
``` 
 
Ejemplo con Python y `PyJWT`: 
 
```bash 
pip install PyJWT 
``` 
 
Paso 2: Generar un JWT (lado del servidor) 
En el servidor, una vez que el usuario ha iniciado sesión y ha sido autenticado, puedes 
generar un token JWT para ese usuario. 
 
Ejemplo en Node.js: 
 
```javascript 
const jwt = require('jsonwebtoken'); 
 
const usuario = { 
 id: 123, 
 nombre: 'Juan', 
 rol: 'admin' 
}; 
 
const claveSecreta = 'mi_clave_secreta'; 
 
const token = jwt.sign(usuario, claveSecreta, { expiresIn: '1h' }); 
 
console.log(token); 
``` 
 
Paso 3: Enviar el JWT al cliente 
Una vez que el token ha sido generado en el servidor, puedes enviarlo al cliente como 
respuesta a una solicitud de inicio de sesión o autenticación. 
 
Paso 4: Validar y usar el JWT (lado del cliente) 
En el lado del cliente (página web), puedes almacenar el token en el almacenamiento local 
(localStorage o sessionStorage) para su uso posterior. 
 
Ejemplo en JavaScript (cliente): 
 
```javascript 
// Supongamos que el token se guarda en localStorage después de recibirlo desde el 
servidor 
 
const token = localStorage.getItem('mi_token_jwt'); 
``` 
 
Luego, cuando realices solicitudes al servidor, puedes incluir el token en el encabezado 
`Authorization` para que el servidor pueda verificar la autenticidad del usuario. 
 
Ejemplo en JavaScript (cliente): 
 
```javascript 
fetch('/ruta-protegida', { 
 method: 'GET', 
 headers: { 
 'Authorization': `Bearer ${token}` 
 } 
}) 
.then(response => response.json()) 
.then(data => console.log(data)) 
.catch(error => console.error(error)); 
``` 
 
En el servidor, deberás implementar la verificación del JWT en la ruta protegida para 
asegurarte de que el usuario esté autenticado y autorizado para acceder a los recursos. 
 
El uso de JWT en páginas web grandes puede ofrecer ventajas significativas, como 
eliminar la necesidad de almacenar información de sesión en el servidor, reducir la carga 
del servidor, mejorar el rendimiento y permitir una autenticación segura y escalable. Sin 
embargo, también es importante considerar la seguridad adecuada en el manejo de 
tokens JWT y tomar medidas para protegerlos de posibles ataques, como CSRF (Cross-Site 
Request Forgery) o XSS (Cross-Site Scripting).

Continuar navegando