1.什麼是javaJwt?html
JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.java
JWT.IO allows you to decode, verify and generate JWT.https://jwt.io/編程
javaJwt is library of jwt implemented by java網絡
2.javaJwt的類結構編程語言
術語解釋:code
一般在傳輸數據時,爲了使數據傳輸更可靠,要把原始數據分批傳輸,而且在每一批數據的頭和尾都加上必定的輔助信息,好比這一批數據量的大小,校驗位等,這樣就至關於給已經分批原始數據加一些外套,這些外套起到標示做用,使得原始數據不易丟失。
一批數據加上它的「外套」,就造成了傳輸通道中基本的傳輸單元,叫作數據幀或者數據包(有的地方數據幀和數據包不是同一律念好比網絡傳輸)。這些數據幀中的記錄信息的原始數據就是有效載荷數據,即payload data。
而消息體就是外套。即標記着原始數據的大小等的輔助信息。orm
1.The Header class represents the 1st part of the JWT, where the Header value is hold.jwt
2.The Payload class represents the 2nd part of the JWT, where the Payload value is hold.htm
3.The Signature class represents the 3rd part of the JWT, where the Signature value is hold.對象
4.The JWTDecoder class holds the decode method to parse a given JWT token into it's JWT representation.
5.The JWTVerifier class holds the verify method to assert that a given Token has not only a proper JWT format, but also it's signature matches.
6.The JWTCreator class holds the sign method to generate a complete JWT (with Signature) from a given Header and Payload content.
7.The Claim class holds the value in a generic way so that it can be recovered in many representations.
根據JWT的標準,這些claims能夠分爲如下三種類型:
a. Reserved claims(保留),它的含義就像是編程語言的保留字同樣,屬於JWT標準裏面規定的一些claim。JWT標準裏面定好的claim有:
b. Public claims,略(不重要)
c. Private claims,這個指的就是自定義的claim。好比前面那個結構舉例中的admin和name都屬於自定的claim。這些claim跟JWT標準規定的claim區別在於:JWT規定的claim,JWT的接收方在拿到JWT以後,都知道怎麼對這些標準的claim進行驗證;而private claims不會驗證,除非明確告訴接收方要對這些claim進行驗證以及規則才行。
按照JWT標準的說明:保留的claims都是可選的,在生成payload不強制用上面的那些claim,你能夠徹底按照本身的想法來定義payload的結構,不過這樣搞根本不必:第一是,若是把JWT用於認證, 那麼JWT標準內規定的幾個claim就足夠用了,甚至只須要其中一兩個就能夠了,假如想往JWT裏多存一些用戶業務信息,好比角色和用戶名等,這卻是用自定義的claim來添加;第二是,JWT標準裏面針對它本身規定的claim都提供了有詳細的驗證規則描述,每一個實現庫都會參照這個描述來提供JWT的驗證明現,因此若是是自定義的claim名稱,那麼你用到的實現庫就不會主動去驗證這些claim。
參考文獻:
【1】http://www.cnblogs.com/lyzg/p/6028341.html