This commit is contained in:
shimingxy 2020-03-07 20:09:34 +08:00
parent e7daaa4e54
commit 0479db5892
2 changed files with 9 additions and 5 deletions

View File

@ -15,5 +15,7 @@
<script type="text/javascript" src="{{ "/js/apache-maven-fluido-1.8.min.js" | prepend: site.baseurl }}?{{ site.time | date: "%Y%m%d%H%M" }}"></script> <script type="text/javascript" src="{{ "/js/apache-maven-fluido-1.8.min.js" | prepend: site.baseurl }}?{{ site.time | date: "%Y%m%d%H%M" }}"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</head> </head>

View File

@ -33,11 +33,12 @@ xxxxx.yyyyy.zzzzz
标头通常由两部分组成令牌的类型即JWT和所使用的签名算法例如HMAC SHA256或RSA。 标头通常由两部分组成令牌的类型即JWT和所使用的签名算法例如HMAC SHA256或RSA。
例如: 例如:
<pre><code class="json hljs">
{ {
"alg": "HS256", "alg": "HS256",
"typ": "JWT" "typ": "JWT"
} }
</code></pre>
然后此JSON被<b>Base64Url</b>编码以形成JWT的第一部分。 然后此JSON被<b>Base64Url</b>编码以形成JWT的第一部分。
<b>Payload(有效载荷)</b> <b>Payload(有效载荷)</b>
@ -53,12 +54,13 @@ xxxxx.yyyyy.zzzzz
私人权利:这些都是使用它们同意并既不是当事人之间建立共享信息的自定义声明注册或公众的权利要求。 私人权利:这些都是使用它们同意并既不是当事人之间建立共享信息的自定义声明注册或公众的权利要求。
有效负载示例可能是: 有效负载示例可能是:
<pre><code class="json hljs">
{ {
"sub": "1234567890", "sub": "1234567890",
"name": "John Doe", "name": "John Doe",
"admin": true "admin": true
} }
</code></pre>
然后,对有效负载进行<b>Base64Url</b>编码以形成JSON Web令牌的第二部分。 然后,对有效负载进行<b>Base64Url</b>编码以形成JSON Web令牌的第二部分。
请注意对于已签名的令牌此信息尽管可以防止篡改但任何人都可以读取。除非将其加密否则请勿将机密信息放入JWT的有效负载或报头元素中。 请注意对于已签名的令牌此信息尽管可以防止篡改但任何人都可以读取。除非将其加密否则请勿将机密信息放入JWT的有效负载或报头元素中。
@ -68,12 +70,12 @@ xxxxx.yyyyy.zzzzz
要创建签名部分,您必须获取编码的标头,编码的有效载荷,机密,标头中指定的算法,并对其进行签名。 要创建签名部分,您必须获取编码的标头,编码的有效载荷,机密,标头中指定的算法,并对其进行签名。
例如如果要使用HMAC SHA256算法则将通过以下方式创建签名 例如如果要使用HMAC SHA256算法则将通过以下方式创建签名
<pre><code class="java hljs">
HMACSHA256( HMACSHA256(
base64UrlEncode(header) + "." + base64UrlEncode(header) + "." +
base64UrlEncode(payload), base64UrlEncode(payload),
secret) secret)
</code></pre>
签名用于验证消息在此过程中没有更改并且对于使用私钥进行签名的令牌它还可以验证JWT的发送者是它所说的真实身份。 签名用于验证消息在此过程中没有更改并且对于使用私钥进行签名的令牌它还可以验证JWT的发送者是它所说的真实身份。
<b>结合一起</b> <b>结合一起</b>