Flujo Completo: Login Automático, Extracción de Token y Consumo de Endpoints
Aprende la técnica más importante en el testing de APIs: encadenar peticiones para capturar el token JWT del login y reutilizarlo automáticamente en todas las rutas protegidas.
El Problema del "Copy-Paste" Manual de Tokens
En el desarrollo de software moderno, prácticamente todas las APIs exigen autenticación basada en tokens (JWT o OAuth2 Bearer).
El error clásico de un desarrollador novato consiste en hacer un POST /login, copiar el valor del token con el ratón desde la respuesta JSON, e ir pegándolo manualmente en cada una de las 30 peticiones de su proyecto. Cada vez que el token expira (por ejemplo a los 15 o 60 minutos), el proceso manual debe repetirse una y otra vez.
Con encadenamiento de peticiones (Request Chaining), Postman automatiza este flujo al 100%:
Diagrama de Arquitectura: Encadenamiento Automatizado de Tokens
Figura 13.1: Ciclo completo de captura en Tests tab, almacenamiento en variable de entorno y herencia en peticiones protegidas.
Paso a Paso de la Implementación
-
Crear la Petición de Login: Configura un
POST {{base_url}}/api/v1/auth/logincon cuerpo JSON enviando correo y contraseña. -
Escribir el Script Extractor en Tests: En la pestaña Tests de esa misma petición de login, parsea la respuesta con
pm.response.json()y guarda el token en el entorno activo usandopm.environment.set("jwt_token", data.token). -
Configurar la Autorización en la Colección: Haz clic derecho en la Colección raíz ➔ Edit ➔ pestaña Authorization ➔ Tipo: Bearer Token ➔ Token:
{{jwt_token}}. -
Heredar en las Peticiones Hijas: Asegúrate de que las demás peticiones (ej.
GET /usuarios,POST /pedidos) tengan configurada su pestaña Auth en "Inherit auth from parent".
⚡ Script Post-Response para Extracción Automática de JWT e ID de Usuario
Coloca este script en la pestaña Tests de tu petición de inicio de sesión (POST /login):
// 1. Validar que las credenciales fueron correctas
pm.test("Autenticación exitosa (200 OK)", function () {
pm.response.to.have.status(200);
});
// 2. Extraer el token del cuerpo de la respuesta
const respuesta = pm.response.json();
pm.test("La respuesta contiene el access token", function () {
pm.expect(respuesta).to.have.property("access_token");
pm.expect(respuesta.access_token).to.be.a("string").that.is.not.empty;
});
// 3. Persistir el token en las variables de entorno activas
if (respuesta.access_token) {
pm.environment.set("jwt_token", respuesta.access_token);
// Opcional: También podemos guardar el ID y rol del usuario conectado
if (respuesta.usuario && respuesta.usuario.id) {
pm.environment.set("user_id_activo", respuesta.usuario.id);
pm.environment.set("user_rol", respuesta.usuario.rol);
}
console.log(" Token JWT capturado y guardado en {{jwt_token}} con éxito.");
}
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección¿Cuál es la función en JavaScript que permite guardar el token de una respuesta en el entorno de Postman?
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual de Postman: Pruebas de APIs REST & Automatización y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.