From cfeb49485d92ef4fd4eb897b115c68fb4b81ee1f Mon Sep 17 00:00:00 2001 From: shimingxy Date: Sat, 7 Mar 2020 19:53:03 +0800 Subject: [PATCH] Update jwtintros.md --- docs/jwtintros.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/jwtintros.md b/docs/jwtintros.md index c0d87774c..629317d44 100644 --- a/docs/jwtintros.md +++ b/docs/jwtintros.md @@ -29,6 +29,7 @@ xxxxx.yyyyy.zzzzz 让我们分解不同的部分。 Header(标头) + 标头通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法,例如HMAC SHA256或RSA。 例如: @@ -37,12 +38,13 @@ xxxxx.yyyyy.zzzzz "alg": "HS256", "typ": "JWT" } -然后,此JSON被Base64Url编码以形成JWT的第一部分。 +然后,此JSON被Base64Url编码以形成JWT的第一部分。 Payload(有效载荷) + 令牌的第二部分是有效负载,其中包含声明。声明是有关实体(通常是用户)和其他数据的声明。索赔有以下三种类型:注册的,公共的和私人索赔。 -已注册的权利要求:这些是一组非强制性的但建议使用的预定义权利要求,以提供一组有用的,可互操作的权利要求。其中一些是: iss(发布者), exp(到期时间), sub(主题), aud(受众群体)等。 +已注册的权利要求:这些是一组非强制性的但建议使用的预定义权利要求,以提供一组有用的,可互操作的权利要求。其中一些是: iss(发布者), exp(到期时间), sub(主题), aud(受众群体)等。 请注意,声明名称仅是三个字符,因为JWT是紧凑的。 @@ -57,7 +59,7 @@ xxxxx.yyyyy.zzzzz "name": "John Doe", "admin": true } -然后,对有效负载进行Base64Url编码,以形成JSON Web令牌的第二部分。 +然后,对有效负载进行Base64Url编码,以形成JSON Web令牌的第二部分。 请注意,对于已签名的令牌,此信息尽管可以防止篡改,但任何人都可以读取。除非将其加密,否则请勿将机密信息放入JWT的有效负载或报头元素中。 @@ -92,13 +94,13 @@ HMACSHA256( 由于缺乏安全性,您也不应该将敏感的会话数据存储在浏览器中。 -每当用户想要访问受保护的路由或资源时,用户代理通常应使用承载模式在授权标头中发送JWT 。标头的内容应如下所示: +每当用户想要访问受保护的路由或资源时,用户代理通常应使用授权AuthorizationBearer承载模式标头中发送JWT 。标头的内容应如下所示: Authorization: Bearer -在某些情况下,这可以是无状态授权机制。服务器的受保护路由将在Authorization标头中检查有效的JWT ,如果存在,则将允许用户访问受保护的资源。如果JWT包含必要的数据,则可以减少查询数据库中某些操作的需求,尽管这种情况并非总是如此。 +在某些情况下,这可以是无状态授权机制。服务器的受保护路由将在Authorization标头中检查有效的JWT ,如果存在,则将允许用户访问受保护的资源。如果JWT包含必要的数据,则可以减少查询数据库中某些操作的需求,尽管这种情况并非总是如此。 -如果令牌是在Authorization标头中发送的,则跨域资源共享(CORS)不会成为问题,因为它不使用cookie。 +如果令牌是在Authorization标头中发送的,则跨域资源共享(CORS)不会成为问题,因为它不使用cookie。 下图显示了如何获取JWT并将其用于访问API或资源: