Introducción a JSON Web Tokens
En el post de hoy estaremos hablando de JWT, qué es, como esta compuesto, posibles aplicaciones que se les pueden dar, sin más preámbulos arranquemos

¿Qué es?

Json Web Token (JWT) es un estándar basado en JSON que se utiliza para representar claims entre dos partes. Un claim son piezas de información sobre un usuario que se encuentran empaquetadas y firmadas con un token de seguridad.

Desmenuzando un JWT

Un JWT está compuesto por 3 partes:
Un header: Señala el tipo de token (JWT), y el algoritmo que se utilizó para codificarlo, como por ejemplo: HMAC, SHA256.
Un payload: Contiene el claim, generalmente en esta sección del token se anexan: la parte que genera el claim (iss: issuer), cuando expira el token (exp: expiration), el sujeto (sub: subject), el iat (timestamp que refleja el momento en el que fue creado el token). Esta parte del token es personalizable lo que significa que eventualmente puede contener campos que sean requeridos por los backends/frontends.
Un signature: Una firma que se utiliza para validar que el emisor del token sea quien dice ser, y que el token no haya sido modificado por terceros.

¿Qué aplicaciones le puedo dar?


-Se utilizan para mantener sesión del lado del cliente: permiten que el cliente pueda loguearse, y que el contenido de la sesión esté protegido mediante la autenticación por encriptación.
-Securización de APIS: Cada request que el usuario realice a un servicio debe llevar el token para acceder a un recurso restringido, en el caso de que el token no sea válido o haya expirado, el usuario no podrá acceder al recurso.

¿Qué tokens puedo utilizar en mi API?

Token de Autorización: Es generado por un servicio, generalmente cuando un usuario se autentica. Contiene información relacionada con el usuario.
Token de ‘Refresco’: Es un token que se utiliza para renovar el token de autenticación, y evitar pedirle nuevamente al usuario sus credenciales. Tiene un tiempo de vida mayor al del token de autenticación.

Esto es todo por hoy, en la próxima entrega te estaremos compartiendo una posible implementación en NodeJS.

Mandanos tus sugerencias

Ayudanos con ideas para los artículos de este blog a contacto@somospnt.com

¡Seguínos en nuestras redes sociales para enterarte de los últimos posts!