一.JWT令牌

JWT令牌是一种简洁的、自包含的格式,用于在通讯双方之间以json数据格式安全的传输数据。说白了,JWT令牌就是将json格式的数据进行封装,从而实现安全传输。
所谓简洁,就是指JWT令牌就是一个简单的字符串。
所谓自包含,就是指我们可以根据自身需要在JWT令牌中存储自定义的数据。
组成:
第一部分是头(Header),其中的"alg"字段是签名算法的类型,这一字段用来指定签名算法,而type类型指定令牌的类型。
第二部分是有效载荷(Payload),携带自定义的信息、默认信息等。
第三部分是签名(Signature),防止Token被篡改、确保安全性。将header、payload加入指定密钥(secret),通过签名算法计算出签名。
那么头和有效载荷是如何编码出来的呢?我们使用的是Base64编码方式,是一种基于64个可打印字符来表示二进制数据的编码方式。也就是说,能够编码,就能够解码。但是数字签名部分是使用签名算法生成的,而非Base64编码。
可以看到,原始的数据就是JSON格式,即:
{"alg":"HS256","type":"JWT"
}
{ "name":"Tom","iat":1516239022
}
因此说JWT令牌是以json数据格式安全的传输数据。
二.JWT令牌的应用场景
JWT令牌最经典的应用场景就是登录认证,如果没有携带JWT令牌,则直接跳转到登录页面。
