您好,登錄后才能下訂單哦!
? ?JWT是JSON Web Tokens的縮寫。既然叫JSON Web Tokens,所以JWT Tokens中真正包含的是多個JSON對象。為什么是多個JSON對象呢?因為SWT Token實際上是由三部分組成,其中有兩部分是JSON格式。這三部分即頭(Header)、負載數據(Payload)、簽名(Signature)。
?? ?
? ? 1、信息頭(Header)
? ? 頭信息包含兩部分,一部分表示Token的類型,對于JWT來說,值為JWT;另一部分表示簽名算法,如,HMAC、SHA256、RSA。示例如下:
?? ?
? ? 2、負載信息(Payload)
? ? 負載信息是對實體與附加信息的說明。包含注冊聲明、公開聲明、私有聲明三部分。詳情請參考:https://tools.ietf.org/html/rfc7519#section-4.2
? ? 3、簽名(Signature)
? ? 通過指定的算法將頭、負載、密碼信息作為輸入條件,計算而得的一個字符串。
? ? 這三部分信息不是原文傳輸的。在傳輸以前,先要進行轉碼壓縮。這樣做一是為了使傳輸的token數據體積小,減少數據傳輸的負擔,二是為了使數據更安全。JWT Token一般可以采用HMAC算法使用密碼進行轉碼壓縮,或采用RSA或ECDSA使用公鑰/私鑰對進行轉碼。這兩種算法均具有數字簽名的作用,從而能夠保證數據的完整性,防止數據被第三方篡改。
?? ?
? ? JSON格式的頭信息和負載信息一般先要進行Base64編碼轉化。然后通過以下的算法獲得簽名:
?? ?
? ? 假定頭信息Base64編碼轉化后的字符用h表示,Base64編碼轉化后的負載數據信息用p表示,簽名值用s表示,則JWT Token顯示為一串用逗號分隔的字符串,一般有如下的形式:
? ??
hhhhh.ppppp.sssss
? ?
????JWT最常用的應用場景是為用戶授權。用戶在登錄時,從授權服務器拿到JWT Token,后續的用戶請求只要攜帶此Token請求相應的資源或服務即可。服務端會在拿到用戶傳的Token后,進行合法性驗證。
? ? JWT另一個用途就是進行信息交換。由于JWT Token既可以用于承載數據,又是經過簽名的,所以,既可以包含更多的應用相關信息,又可以保證數據的安全性,防止數據被攔截后修改。
? ? 更詳細的介紹,請參考官方說明:https://jwt.io/introduction/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。