1. 程式人生 > >一張圖瞭解javaJwt

一張圖瞭解javaJwt

1.什麼是javaJwt?

JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.

JWT.IO allows you to decode, verify and generate JWT.https://jwt.io/

javaJwt is library of jwt implemented by java

2.javaJwt的類結構

術語解釋:

通常在傳輸資料時,為了使資料傳輸更可靠,要把原始資料分批傳輸,並且在每一批資料的頭和尾都加上一定的輔助資訊,比如這一批資料量的大小,校驗位等,這樣就相當於給已經分批原始資料加一些外套,這些外套起到標示作用,使得原始資料不易丟失。
一批資料加上它的“外套”,就形成了傳輸通道中基本的傳輸單元,叫做資料幀或者資料包(有的地方資料幀和資料包不是同一概念比如網路傳輸)。這些資料幀中的記錄資訊的原始資料就是有效載荷資料,即payload data。
而訊息體就是外套。即標記著原始資料的大小等的輔助資訊。


1.The Header class represents the 1st part of the JWT, where the Header value is hold.

2.The Payload class represents the 2nd part of the JWT, where the Payload value is hold.

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有:

  • iss(Issuser):代表這個JWT的簽發主體;
  • sub(Subject):代表這個JWT的主體,即它的所有人;
  • aud(Audience):代表這個JWT的接收物件;
  • exp(Expiration time):是一個時間戳,代表這個JWT的過期時間;
  • nbf(Not Before):是一個時間戳,代表這個JWT生效的開始時間,意味著在這個時間之前驗證JWT是會失敗的;
  • iat(Issued at):是一個時間戳,代表這個JWT的簽發時間;
  • jti(JWT ID):是JWT的唯一標識。

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

相關推薦

瞭解javaJwt

1.什麼是javaJwt? JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. JWT

瞭解微信支付寶支付流程

轉自:https://www.cnblogs.com/yang-shuai/p/6516173.html   1、微信支付 以下是微信支付互動時序圖,統一下單API、支付結果通知API和查詢訂單API等都涉及簽名過程, 呼叫都必須在商戶伺服器端完成。如圖1所示。

瞭解react生命週期

網上有很多關於react生命週期的文章,看完過後還是不太能理解。 樓主的建議是先把react生命週期的十個方法先背下來: 1.getDefaultProps 作用於元件類,只調用一次,返回物件用於設定預設的props,對於引用值,會在例項中共享。 2.getInitialState

瞭解所有USB介面和線序

HNP(主機協商協議):當兩個OTG裝置使用電纜相連,檢測到接地的ID引腳時,表示預設的是A裝置(主機),而檢測到ID引腳浮空的裝置則認為是B裝置(外設)。這兩個角色不是一成不變的,可以通過HNP協議來轉換角色。

PMP專案管理的49個過程,讓你全部瞭解

專案管理的49個過程,看錶格顯得比較單調,印象也不是很深,所以今天小編就給大家發一張圖片,可以用一張圖就能生動又詳細的瞭解PMP專案管理的49個過程。   大家看完是不是覺得一目瞭然了呢,圖片上傳後不知道是不是清楚,大家覺得不清楚的可以

大神帶你瞭解遊戲程式設計師的學習之路

葉勁峰(Milo Yip)現任騰訊 T4 專家、互動娛樂事業群魔方工作室群前臺技術總監。他獲得香港大學認知科學學士(BCogSc)、香港中文大學系統工程及工程管理哲學碩士(MPhil)。他是《遊戲引擎架構》譯者、《C++ Primer 中文版(第五版)》審校。他曾參與《天涯明月刀》、《鬥戰神》、《愛麗絲

讓你瞭解Storm的DRPC實現原理

參照上圖 構建DRPC拓補圖的拓補構造器: package backtype.storm.drpc; import backtype.storm.Constants; import backtype.storm.ILocalDRPC; import backtype.s

【內存優化】加載像資源到底占據多少內存

div blog 效果 .get round raw tails 整體 spa 0.內容概覽 1. 簡介 2. 問題 3. 概念描述 4. 具體分析 5. 總結 6. 參考文檔 1.簡介 Android中經常要通過ImageView進

天津政府應急系統之GIS(arcgis api for flex)解說(三)顯示地圖坐標系模塊

image blur rda plain 讀取 else important baseline pat config.xml文件的配置例如以下: 1 2 <widget left="3" bottom="3" config="widg

說明CDN網絡的原理

域名 alt 進一步 net 協同 使用 來講 dns 服務 1.用戶向瀏覽器輸入www.web.com這個域名,瀏覽器第一次發現本地沒有dns緩存,則向網站的DNS服務器請求; 2.網站的DNS域名解析器設置了CNAME,指向了www.web.51cdn.co

輕松搞懂javascript event對象的clientX,offsetX,screenX,pageX區別

png javascrip 區域 文檔 .cn 標準屬性 分享 clas src 先總結下區別: event.clientX、event.clientY 鼠標相對於瀏覽器窗口可視區域的X,Y坐標(窗口坐標),可視區域不包括工具欄和滾動條。IE事件和標準事件都定義了這2

教會CSS3倒影

webkit 解釋 cat 圖片 blank 開頭 comm 遺憾 nsh 分享 示例圖片 在CSS3之前,想要實現示例圖片這樣的一個倒影效果一般只能通過處理圖片的方式,而CSS3問世之後,想要實現這樣的效果變得非常簡單,只需一個CSS3屬性就可以輕松實現了。 這就是

看懂開源許可協議,開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別

軟件發布 csdn 合作 title ref 沒有 版本 簡單介紹 著名 開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別 首先借用有心人士的一張相當直觀清晰的圖來劃分各種協議:開源許可證GPL、BSD、MIT、Mozilla、Apache和L

看懂DNS域名解析全過程

能夠 title 設置 www 博文 忽略 配置 隨著 href DNS域名解析是互聯網上非常重要的一項服務,上網沖浪(還有人在用這個詞嗎?)伴隨著大量DNS服務來支撐,而對於網站運營來說,DNS域名解析的穩定可靠,意味著更多用戶的喜歡,更好的SEO效果和更大的訪問流量。我

告訴你angular2所有知識點

技術分享 代碼 自動化 我想 合作 .cn 動畫 image 框架 忙活了半年,從angular2.0到現在angular4.2。從沒AOT到有AOT。我想說,angular2的學習曲線真的有點陡峭。只能說,angular2是一個比較完整的框架,框架就是這樣,一大堆條條框框

Storm集群上的開發 ,Topology任務的編寫 之 WordCount Spout和Blot的分組策略(說明問題)(五)

topology 技術 流動 .com orm 使用 不同的 alt 分組 Storm的數據從Spout采集後,交給Blot組件處理,數據在Blot之間流動時,會涉及到數據流動的方向。這就是Storm的分組策略。 從WordCount的單詞拆分到單詞計數,會使用按字段的分組

看清世界上最大的數據中心分布區域

內蒙古 項目 ace net 監控 現場 萬維網 居住 為我 原文地址 去年年底,全球網站總數估計約970864745個,以每秒約2個網站的速度遞增。據互聯網研究公司Netcraft聲稱,活躍網站大約有1.77億個,使用數億個現有的主機名。 去年年底,全球網站總數估計

搞清楚PMBOK所有過程的使用

項目管理 這就是 多項目 特殊 描述 風險 pmp 的人 div 很多參加PMP培訓的學員大概都會有一個感受,上課時似乎每個知識點都聽懂了,大的知識框架也弄明白了,但是所有這些串起來在實踐中怎麽用呀!說的再直接一點,在考試的時候這些過程和活動是以怎樣的邏輯來應用

了解物聯網技術

rabbit 控制器 mesh cdm tel 濕度 距離 wim src 應用   用戶層     消費類       家居       生活       健康       移動     行業類       零售       工業       醫療  

理解prototype、proto和constructor的三角關系

== fun func 作用 foo 功能 關於 const mage 前面的話   javascript裏的關系又多又亂。作用域鏈是一種單向的鏈式關系,還算簡單清晰;this機制的調用關系,稍微有些復雜;而關於原型,則是prototype、proto和constructo