JSON Web Token(JWT)定义了一种紧凑的、自包含的方式,用于网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT传递的信息可以被验证和信任,因为它是数字签名的。JWTs可以使用一个密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对来签名。
JSON Web Token的组成
JSON Web令牌由由点(.)分隔的三个部分组成:
- 1 Header
- 2 Payload
- 3 Signature
因此,JWT的结构通常是这样的:Header.Payload.Signature
- Header
头信息通常包含两部分,type:代表token的类型,这里使用的是JWT类型。 alg:使用的Hash算法,例如HMAC SHA256或RSA.
例如:
{
:“alg HS256”,
:“typ JWT”
}
然后,这个JSON是Base64Url编码,以形成JWT的第一部分。 - Payload
第二个部分是荷载信息,它包含一些声明Claim(实体的描述,通常是一个User信息,还包括一些其他的元数据) - signature
第三部分是一个签证信息,这个签证信息由三部分组成:
1、header (base64后的)
2、payload (base64后的)
3、secret
这部分需要base64加密后的header和base64加密后的payload使用“.”连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密