}
>1、alg属性表示**签名的算法,默认算法为HS256**,可以自行别的算法。
>2、typ属性表示这个**令牌的类型**,JWT令牌就为JWT。
上面的JSON数据会通过**Base64算法**进行编码而成,看工具图
![](https://upload-images.jianshu.io/upload_images/15590149-bd62303e35e4da17.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# Payload
此为JWT第二段数据,用来存放实际需要传递的数据。JWT官方也规定了7个字段供选用
![](https://upload-images.jianshu.io/upload_images/15590149-dff462807a1ad8f1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
当然除了官方字段,我们**可以自定义字段**,以上面的案例,我们看下实际的数据
![](https://upload-images.jianshu.io/upload_images/15590149-ad2701da8216596c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>注意:这段也是用Base64算法,**JWT默认是不加密的**,任何人都可以获取,只要进行**Base64解码**就行了,所以**不要把隐密的信息放到JWT中**
# Signature
此为JWT第三段数据,**主要作用是对前面两段的数据进行签名,防止数据篡改**。一般我们进行签名的时候会**有个密钥(secret)**,**只有服务器知道**,然后**利用Header中的签名算法**进行签名,公式如下:
</