一.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令牌,则直接跳转到登录页面。