JWT理論理解

2022-04-11 20:37:16 字數 1499 閱讀 5505

json web token (jwt), 是為了在網路應用環境間傳遞宣告而執行的一種基於json的開放標準(rfc 7519).該token被設計為緊湊且安全的,特別適用於分布式站點的單點登入(sso)場景。

jwt的宣告一般被用來在身份提供者和服務提供者間傳遞被認證的使用者身份資訊,以便於從資源伺服器獲取資源,也可以增加一些額外的其它業務邏輯所必須的宣告資訊,該token也可直接被用於認證,也可被加密。

jwt的構成

第一部分我們稱它為頭部(header)

第二部分我們稱其為載荷(payload)

第三部分是簽證(signature).

jwt的頭部承載兩部分資訊:

完整的頭部就像下面這樣的json:

然後將頭部進行base64加密(該加密是可以對稱解密的),構成了第一部分.

載荷就是存放有效資訊的地方。這個名字像是特指飛機上承載的貨品,這些有效資訊包含三個部分

標準中註冊的宣告(建議但不強制使用) :

私有的宣告

私有宣告是提供者和消費者所共同定義的宣告,一般不建議存放敏感資訊,因為base64是對稱解密的,意味著該部分資訊可以歸類為明文資訊。

定義乙個payload:

然後將其進行base64加密,得到jwt的第二部分。

jwt的第三部分是乙個簽證資訊,這個簽證資訊由三部分組成:

這個部分需要base64加密後的headerbase64加密後的payload使用.連線組成的字串,然後通過header中宣告的加密方式進行加密secret

組合加密,然後就構成了jwt的第三部分。

將這三部分用.連線成乙個完整的字串,構成了最終的jwt:

注意:secret是儲存在伺服器端的,jwt的簽發生成也是在伺服器端的,secret就是用來進行jwt的簽發和jwt的驗證,

所以,它就是你服務端的私鑰,在任何場景都不應該流露出去。一旦客戶端得知這個secret, 那就意味著客戶端是可以自我簽發jwt了。

在請求頭里加入authorization,並加上token標註:

headers: 

服務端會驗證token,如果驗證通過就會返回相應的資源。整個流程就是這樣的:

主題建模 理論理解

在優秀的詞嵌入方法出現之前,潛在語義分析模型 lsa 和文件主題生成模型 lda 都是解決自然語言問題的好方法。lsa模型和lda模型有相同矩陣形式的詞袋表示輸入。不過,lsa模型專注於降維,而lda模型專注於解決主題建模問題。在自然語言理解任務中,我們可以通過一系列的層次來提取含義 從單詞 句子 ...

UML 小結(2) 理論理解

什麼是uml uml是統一建模語言 uml是 unified modeling language的縮寫 是用來對軟體密集系統進行視覺化建模的一種語言。uml為物件導向開發系統的產品進行說明 視覺化 和編制文件的一種標準語言。統一建模語言 uml 是非專利的第三代建模和規約語言。uml是在開發階段,說...

「千腦智力理論」理解人類新大腦皮層

計算機科學家 神經生物學家jeff hawkins提出新型框架來理解人類新大腦皮層如何運作,即 千腦智力理論 深度學習是人工智慧最新的進展,它借鑑了人類 大腦 的大概。大多數深度學習模型的架構是基於處理層的,是一種受生物大腦神經元啟發的人工神經網路。然而,神經科學家們對於智力 intelligenc...