Autorización JWT

Cat's identification token

Autorización con JSON Web Token permite completar autenticación y autorización con login y contraseña una sola vez, obtener un token JWT de acceso y usarlo para todas las solicitudes posteriores.

El token contiene toda la información que el servidor necesita sobre el usuario, eliminando la necesidad de autenticación repetida.

Puedes refrescar tus conocimientos sobre el formato JWT aquí.

Access y Refresh Tokens

Access Token demuestra que el usuario tiene permiso para acceder a un recurso. Los access tokens suelen tener una duración corta: entre 5 y 15 minutos.

Refresh Token se usa para mejorar la seguridad y la comodidad del usuario. Los refresh tokens normalmente duran varios meses y permiten obtener un nuevo access token sin volver a introducir credenciales.

Así se ve el proceso paso a paso:

Paso 1. El cliente introduce login/contraseña y recibe access y refresh tokens

Cliente
Envía login/contraseña
Recibe:
access_token
refresh_token

Paso 2. El cliente usa el access token para acceder a recursos protegidos

Cliente
access_token
Recurso protegido
Acceso concedido

Paso 3. Cuando el access token expira, el cliente envía el refresh token y recibe un nuevo par de tokens

Cliente
refresh_token
Recibe:
nuevo access_token
nuevo refresh_token

Encabezado Authorization con tipo Bearer Token

Antes aprendimos a enviar una solicitud con el encabezado Authorization con tipo Basic Auth para transmitir un par login/contraseña.

Al enviar un token JWT, debes seleccionar el encabezado Authorization con tipo Bearer Token

y pegar el token proporcionado por el servidor en el campo Token.

El encabezado se verá así:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiJ1c2VyIiwicm9sZSI6IlRFU1QiLCJleHAiOjE3MTYyMzkwMjJ9.
wnZZUqYlOX_WAKjrcaMUdM_JyalzHsRwNfRu74wKPR8
Postman authorization header type bearer
Tipo de autorización Bearer Token en Postman

Tiempo de expiración del token JWT

Un token JWT sigue siendo válido hasta su tiempo de expiración.

Para comprobar la expiración del token, decodifícalo (por ejemplo, en jwt.io) y compara el valor del exp campo en payload con la hora actual. Si el valor es menor, el token ha expirado.

El campo exp usa Unix Time, que es el número de segundos transcurridos desde el 1 de enero de 1970.

Puedes usar convertidores online para que Unix Time sea más fácil de leer.

Jwt expired unix time
Conversión de Unix time en jwt.io al pasar el cursor

¿Cómo modificar los datos del token?

Solo modificar los datos del token y generar una nueva firma hará que el token sea válido.

Modificar los datos sin volver a firmar el token puede usarse como escenario negativo para comprobar la verificación de firma del servidor, o en entornos de prueba donde la validación de firma está deshabilitada, por ejemplo para extender la duración del token.

Los tokens emitidos por el servidor siempre deben estar protegidos por una firma que garantiza la integridad de los datos del token y evita modificaciones. En la tarea veremos qué pasa cuando el servidor olvida verificar el token.

Tarea
¡Tarea disponible para usuarios premium!

Desbloquea el acceso para aprender sin límites.

Acceso completo a todas las tareas prácticas
Verificación de respuestas
Intentos ilimitados
Sidebar arrow

INTRODUCCIÓN

CONCEPTOS BÁSICOS

NIVELES DE PRUEBAS

PRUEBAS DE UI

DISEÑO DE PRUEBAS

DOCUMENTACIÓN DE PRUEBAS

AUTENTICACIÓN Y AUTORIZACIÓN

POSTMAN

BASES DE DATOS

PRUEBAS DE RELEASE

ANÁLISIS DE LA APLICACIÓN

PREPARACIÓN PARA ENTREVISTAS

Cómo escribir un CV Preguntas frecuentes de entrevista Test Entrevista simulada