🔑 Creador y Firmante de Tokens JWT
Cree y firme JSON Web Tokens al instante en su navegador. Personalice fácilmente su encabezado y datos de carga útil con total privacidad.
Hablemos sobre los tokens
Hola amigos. Alguna vez se han preguntado cómo los sitios web recuerdan quiénes son ustedes. Inician sesión una vez y boom, ya están dentro. Hacen clic por todas partes. Compran cosas. Publican fotos divertidas de gatos. El sitio web simplemente sabe que son ustedes. Cómo lo hace. Bueno, no es magia. Generalmente es un JSON Web Token.
Imaginen que van a un concierto exclusivo. Esperan en la fila. La persona en la puerta revisa su boleto. Verifican que ustedes son reales. Luego les sellan la mano. Durante el resto de la noche, simplemente muestran el sello. No necesitan mostrar su boleto otra vez. El JSON Web Token es exactamente como ese sello en la mano. Demuestra que ya han sido revisados. Demuestra que pertenecen a ese lugar.
Desglosando el token
Un token está compuesto por tres partes distintas. Están pegadas con un carácter de punto. Estas partes son el encabezado, la carga útil y la firma. Vamos a sumergirnos en lo que hace cada parte en realidad.
Primero está el encabezado. El encabezado es como el sobre de una carta. Les dice qué hay adentro. Usualmente indica el tipo de token y el algoritmo utilizado para firmarlo. La mayoría de las veces el tipo es simplemente JWT. El algoritmo podría ser HS256. Son cosas muy simples. Es solo un pequeño objeto JSON que se codifica en texto.
Lo siguiente es la carga útil. Esta es la verdadera sustancia del token. Es donde ponen sus datos reales. Podrían poner un ID de usuario aquí. Podrían poner un rol como administrador o usuario. Podrían poner una fecha de vencimiento. Estos datos también son solo un objeto JSON. Llamamos a las piezas de datos reclamaciones. Hay reclamaciones estándar y reclamaciones personalizadas. Pueden poner casi cualquier cosa que quieran en la carga útil. Solo recuerden que cualquiera puede leerlo. No pongan contraseñas o cosas súper secretas en la carga útil. Está codificado, no cifrado. Esa es una diferencia enorme.
Finalmente tenemos la firma. Esta es la parte más crítica. La firma es lo que hace que el token sea seguro. Sin una firma, cualquiera podría simplemente cambiar su ID de usuario a otra persona. Podrían convertirse en administradores. Eso sería un desastre total. La firma previene esto. Toma el encabezado y la carga útil. Añade una clave secreta que solo el servidor conoce. Luego hace algo de matemáticas sofisticadas en todo eso. Si alguien cambia incluso una sola letra en el encabezado o la carga útil, las matemáticas no coincidirán con la firma. El servidor sabrá que el token es falso. Es brillantemente simple y extremadamente seguro al mismo tiempo.
Cómo firmar un token
Firmar un token suena complicado. En realidad es bastante directo. Necesitan su encabezado codificado. Necesitan su carga útil codificada. Necesitan una clave secreta. Combinan el encabezado y la carga útil con un carácter de punto. Luego los pasan por una función hash con su clave secreta. La función más común es HMAC SHA256.
Una vez que las matemáticas están hechas, obtienen una cadena de caracteres. Esta es su firma. La codifican para que sea seguro enviarla a través de la web. Luego la adjuntan al final de su encabezado y carga útil con otro punto. Ahora tienen un token completo. Está listo para ser enviado al servidor. El servidor hará exactamente la misma operación matemática cuando reciba el token. Si el resultado coincide con la firma que enviaron, el servidor sabe que el token es válido. El servidor sabe que nadie lo ha alterado.
Por qué los amamos
Los desarrolladores aman absolutamente estos tokens. Por qué. Porque son sin estado. Esto es algo muy importante en el mundo de la programación.
En los viejos tiempos, los servidores tenían que recordar a cada persona que había iniciado sesión. Almacenaban esto en una base de datos o en la memoria. A esto le llamábamos una sesión. Si un millón de personas iniciaban sesión, el servidor tenía que recordar un millón de sesiones. Esto consumía mucha memoria. Era difícil de escalar. Si tenían cinco servidores, todos tenían que compartir los datos de la sesión. Era un dolor de cabeza masivo.
Los JSON Web Tokens solucionan todo esto. El servidor no recuerda nada en absoluto. El servidor simplemente les da el token y se olvida de ustedes. Cuando regresan, muestran el token. El servidor verifica la firma. Si la firma es válida, el servidor confía en el token. Lee la carga útil para ver quiénes son ustedes. El servidor no necesita buscar una sesión en una base de datos. Es increíblemente rápido. Usa casi cero memoria en el servidor. Pueden tener diez servidores o mil servidores. Todos pueden verificar el token sin hablar entre ellos. Esto hace que escalar aplicaciones web sea mucho más sencillo.
Errores comunes que deben evitarse
Hay algunas trampas con las que deben tener cuidado. Vemos a la gente cometer los mismos errores una y otra vez.
El primer error es poner datos sensibles en la carga útil. Sé que ya dije esto. Lo digo de nuevo porque es así de importante. La carga útil solo está codificada en base64. Cualquiera puede decodificarla. Pueden decodificarla en su navegador ahora mismo. Si ponen un número de tarjeta de crédito en la carga útil, todos pueden verlo. Solo pongan datos que sean seguros para ser públicos.
El segundo error es usar una clave secreta débil. Su clave secreta es lo único que mantiene el token seguro. Si alguien adivina su clave secreta, pueden crear sus propios tokens. Pueden fingir ser cualquiera. Traten su clave secreta como una contraseña maestra. Háganla larga. Háganla aleatoria. Nunca la compartan. Nunca la pongan en su código fuente.
El tercer error es no verificar la fecha de vencimiento. Los tokens no deberían vivir para siempre. Si un token nunca expira, y un hacker lo roba, pueden usarlo para siempre. Siempre den a sus tokens una fecha de vencimiento. Cuando expiran, el usuario tiene que obtener uno nuevo. Esto limita el daño si alguna vez roban un token.
Vamos a concluir todo
Así que ahí lo tienen, amigos. Eso es todo lo que necesitan saber sobre los JSON Web Tokens. Son un invento brillante. Hacen que la web sea más rápida y segura. Resuelven problemas enormes para los desarrolladores. Actúan como un pasaporte digital. Reciben un sello una vez y están listos para continuar. El encabezado les dice qué es. La carga útil guarda sus datos. La firma mantiene todo a salvo. Solo recuerden mantener sus secretos en secreto. No pongan cosas privadas en la carga útil. Siempre establezcan una fecha de vencimiento. Estarán construyendo aplicaciones seguras en muy poco tiempo.
Ahora adelante y prueben nuestro generador. Es súper divertido jugar con él. Pueden cambiar el encabezado. Pueden cambiar la carga útil. Pueden añadir su propia clave secreta. Vean cómo el token cambia instantáneamente. Es una gran manera de aprender cómo funcionan. Diviértanse explorando el mundo de los tokens seguros.