# Json Web Token

JSON Web Token es un estándar abierto basado en JSON propuesto por IETF para la creación de tokens de acceso que permiten la propagación de identidad y privilegios

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FpTWJyisXwJrS7DwvUhvq%2F1.png?alt=media&#x26;token=d2f899b7-e4f3-4be9-970a-b6e37c395d3e" alt=""><figcaption></figcaption></figure>

Primero tenemos nuestro laboratorio, podemos loguearnos como el usuario uno o dos lo hare con el uno.

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2Fn010JM5D1kyVuyZPIEmO%2F2.png?alt=media&#x26;token=a37f94b3-ff43-4b4f-824a-4df3dc180049" alt=""><figcaption></figcaption></figure>

Me logueo como el usuario numero uno.

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FydkSa8mZFIbgvCFYXLa0%2F3.png?alt=media&#x26;token=6fa20c21-421c-4c1f-bc25-67acc184bbd1" alt=""><figcaption></figcaption></figure>

Si inspeccionamos observamos que tenemos un Json web token para el usuario numero uno el cual usaremos.

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2F44UyzIaBXCymc7MvdVuw%2F4.png?alt=media&#x26;token=1855ba59-111d-4f30-9072-e25ec2e658b0" alt=""><figcaption></figcaption></figure>

Si nos vamos a jwt.io y pegamos el Json web token que tenemos para nuestro usuario que es el usuario numero uno nos divide en tres partes el Json web token.

La primera parte es el header osea la cabezera, la segunda datos y la tercera el SIGNATURE donde va el secreto si lo tiene.

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FvNscBdptOFtg7gDXzamm%2F5.png?alt=media&#x26;token=3a87d0ed-1eb8-40e7-bee5-6651087931f2" alt=""><figcaption></figcaption></figure>

Vamos a crearnos uno Json web token para tratar de migrar al usuario numero dos.

En alg ponemos none si no necesita incrip, y solo tenemos dos cadenas ya que para este Json web token no pide el secreto para crear nuevos.&#x20;

Y listo tenemos un Json web token que lo usuaremos para migrar al usuario dos, que se lo especificamos en la segunda cadena id:.

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FrcBR1wMj6JLZ7nsl5Eno%2F6.png?alt=media&#x26;token=9699502a-32a4-4710-a08a-c146fd779fe6" alt=""><figcaption></figcaption></figure>

Ahora nos vamos al storage del usuario borramos el token que ya teniamos y pegamos el que hemos creado para asi poder migrar al usuario numero dos.

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FWhnatWF6VAEVbE4i1iU0%2F7.png?alt=media&#x26;token=afd9b4a0-024e-4049-966a-b99359313932" alt=""><figcaption></figcaption></figure>

Actualizamos y somos el usuario numero dos.

<figure><img src="https://1827363921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEGJvvgIusdsLKeoExX1C%2Fuploads%2FDUS3i2v2NfJQpP5RTVs0%2F8.png?alt=media&#x26;token=b7904719-a11e-4584-9049-86b1be88df70" alt=""><figcaption></figcaption></figure>

Welcome user2.

Ahora una cosa si el aplicativo tiene en el SIGNATURE asignado un secreto osea una clave no podrias crear un Json web token nuevo a menos que conoscas el secreto osea la clave entonces tocaria usar la imaginacion.
