这种格式是OAuth2附带token的一种规范格式
至于什么是OAuth2,那是另一个话题了
这样一来,服务器就能够收到这个令牌了,通过对令牌的验证,即可知道该令牌是否有效。
它们的完整交互流程是非常简单清晰的:
令牌的组成
为了保证令牌的安全性,jwt令牌由三个部分组成,分别是:
-
header:令牌头部,记录了整个令牌的类型和签名算法
-
payload:令牌负荷,记录了保存的主体信息,比如你要保存的用户信息就可以放到这里
-
signature:令牌签名,按照头部固定的签名算法对整个令牌进行签名,该签名的作用是:保证令牌不被伪造和篡改
它们组合而成的完整格式是:header.payload.signature
比如,一个完整的jwt令牌如下:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmb28iOiJiYXIiLCJpYXQiOjE1ODc1NDgyMTV9.BCwUy3jnUQ_E6TqCayc7rCHkx-vxxdagUwPOWqwYCFc
它各个部分的值分别是:
-
header:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
-
payload:eyJmb28iOiJiYXIiLCJpYXQiOjE1ODc1NDgyMTV9
-
signature: BCwUy3jnUQ_E6TqCayc7rCHkx-vxxdagUwPOWqwYCFc
下面分别对每个部分进行说明
header
======
它是令牌头部,记录了整个令牌的类型和签名算法
它的格式是一个json对象,如下:
{
“alg”:“HS256”,