Introducción a JWT: JSON Web Token (JWT) es un estándar abierto (RFC 7519) que define una forma compacta y autónoma de transferir información de forma segura entre partes en objetos JSON. Esta información puede ser verificada y confiable mediante firmas digitales. Los JWT pueden firmarse usando secretos (usando el algoritmo HMAC) o usando los pares de claves públicas/privadas de RSA.
Algunos escenarios en los que los JSON Web Tokens son útiles:
Verificación de identidad:Este es el caso más común de usar JWT. Una vez que el usuario inicia sesión, cada solicitud posterior contendrá un JWT que permite acceder a las rutas, servicios y recursos permitidos por ese token. El inicio de sesión único es una función ampliamente utilizada hoy en día debido a su bajo sobretrabajo y a su capacidad de fácil uso en diferentes dominios.
Intercambio de información:Los JSON Web Tokens son una excelente forma de transferir información de forma segura entre partes. Como los JWT pueden firmarse —por ejemplo, usando pares de claves públicas/privadas— es posible asegurarse de que el remitente es quien dice ser. Además, dado que la firma se calcula usando cabeceras y cargas útiles, también puedes verificar que el contenido no ha sido manipulado.
Página web oficial:El inicio de sesión del hipervínculo es visible.
Consulta la información de JWT en línea:El inicio de sesión del hipervínculo es visible.
Analizar parámetros JWT en línea El inicio de sesión del hipervínculo es visible.
Mi comprensión de JWT a continuación es errónea, por favor dadme algún consejo
En primer lugar, esto no se recomienda usarlo en la web de MVC, puedes usarlo en webapi, la ubicación de este dispositivo es API, no una sesión de la web de reemplazo.
asp.net tutorial de uso de webapi:El inicio de sesión del hipervínculo es visible.No voy a rehacer la rueda, ver cómo está escrito este artículo está bien.
La composición de JWT
JWT está compuesto por tres partes: Cabecera, Carga útil y Firma, con símbolos de puntos entre ellos para formar la forma de xx.yy.zz.
Ten en cuenta que para los tokens firmados, esta información puede ser leída por cualquiera, a pesar de la protección contra manipulaciones. No coloques información sensible en el contenido válido o en los elementos de encabezado del JWT a menos que esté cifrado.
Por ejemplo:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [firma] En términos sencillos, cualquiera puede descifrar este token, pero la autenticidad de esta información no puede verificarse; solo el servidor que generó este token puede verificar la autenticidad, así que no almacenes información sensible en él.
Aquí hay un problema, es decir, si el usuario cambia la contraseña o se le prohíbe iniciar sesión, ¿cómo puede JWT resolver la validez del token?
Mi idea es añadir una cadena tipo guid en la sección de carga útil, y luego existir en la caché; al verificar la identidad del usuario, no solo verificar el jwt, sino también la información de la carga útil en el jwt, podemos controlar la validez controlando la caché.
|