一.令牌组成
1.标头(header)
2.有效载荷(Payload)
3.签名(Signature)
-因此,JWT通常如下所示:xxx.yyy.zzz Header.Payload.Signature
二.Header
1.标头通常有两部分组成:令牌类型(即JWT)和所使用的的签名算法,例如:HMAC SHA256或RSA。它会使用Base64编码组成JWT结构的第一部分。
-Base64是一种编码,也就是说,它可以被翻译回原来的样子的,它并不是一种加密过程
三.Payload
-令牌的第二部分是有效负载,其中包含声明,声明是有关实体(通常是用户)和其他数据的声明。同样的,它会使用Base64编码组成JWT结构的第二部分。声明就是你想放进去的数据(例如用户名等),但是注意不要把一些敏感的信息放进去,例如:用户密码。因为,如果被拦截到的话,那么就危险了。
四.Signature
-前面两部分都是使用Base64进行编码的,即前端可以解开知道里面的信息。Signature需要使用编码后的header和payload,以及我们提供的一个密钥,然后使用header中的签名算法(HS256)进行签名,签名的作用是保证JWT没有被篡改过