JWT
Abreviatura
- Nombre completo: JSON Web Token (JWT), ( JSON Web Tokens - jwt.io )
- Define un formato conciso e inclusivo para transmitir de forma segura información en formato de datos JSON entre las partes que se comunican. Esta información es confiable debido a la presencia de firmas digitales.
composición
-
Encabezado: el encabezado de un JWT generalmente consta de dos partes: el tipo de token (es decir, JWT) y el algoritmo de firma utilizado (como HMAC SHA256 o RSA). El encabezado estará codificado en Base64 , pero no cifrado. Por ejemplo: {"alg":"HS256", "type":"JWT"}
-
La codificación Base64 es un método de codificación basado en 64 caracteres imprimibles (AZ, az, 0-9, +, /) para representar datos binarios.
-
-
Carga útil: la carga útil es la segunda parte del JWT y contiene afirmaciones que describen información sobre el usuario y otros datos. La carga útil de JWT puede contener reclamos predefinidos (como iss (emisor), exp (tiempo de vencimiento), etc.) y reclamos personalizados. La carga útil también está codificada en Base64, pero no cifrada.
-
Firma (Firma): La firma es la tercera parte de JWT, que se utiliza para verificar la integridad y autenticidad de JWT. La firma se genera cifrando el encabezado, la carga útil y una clave. Después de recibir el JWT, el servidor utiliza la misma clave y algoritmo de firma para verificar la firma y garantizar que el JWT no haya sido manipulado.
ejemplo específico
```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
```
En este ejemplo, el token JWT consta de tres partes, cada una separada por un punto (.) :
1. Encabezado: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9`, que contiene el tipo de token ("alg") y el algoritmo de cifrado utilizado ("typ").
2. Carga útil: `eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ`, que contiene algunas afirmaciones, como ID de usuario, nombre de usuario y hora de emisión del token.
3. Firma: `SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`, que se genera mediante el encabezado, la carga útil, la clave secreta y el algoritmo de cifrado, y se utiliza para verificar la autenticidad del token.
Los tokens JWT se utilizan comúnmente para autenticación y autorización, lo que permite la transferencia segura de datos entre clientes y servidores.
escenas a utilizar
- autenticación de inicio de sesión
- Enviamos una solicitud desde el navegador para solicitar una operación de inicio de sesión y accederemos a la interfaz de inicio de sesión. Si el inicio de sesión es exitoso, el servidor debe generar un token JWT (generación de token ) y luego devolver el token JWT generado al frente. final, y el front-end pasará el token JWT. La tarjeta se almacena, y luego el token JWt se llevará al servidor en cada solicitud posterior, y el servidor lo interceptará de manera uniforme y emitirá un juicio (verificar el token ) .