應用場景:
授權:這是使用JWT最常見的場景。
信息交換:JSON Web token是在各方之間安全傳輸信息的好方法。
JSON Web Token由三部分組成,點(?。?),它們是:
頁眉
有效載荷
簽名?符號
JWT通常是這樣的:
標題。有效載荷。簽名
標題:
它通常由兩部分組成:令牌類型(JWT)和使用的簽名算法(如HMAC SHA256或RSA)。
{ ?“alg“:“hs 256“,?“typ“:“JWT“}
Base64Url編碼此JSON以形成JWT的第壹部分。
有效載荷:
有效負載,包含聲明。聲明是關於實體(通常是用戶)和附加數據的聲明。債權分為三類:登記債權、公共債權和私人債權。
{ ?“sub“:“1234567890“,?“姓名”:“無名氏”,?“admin”:true }
Base64Url對有效負載進行編碼,形成JSON Web令牌的第二部分。
簽名?簽名:
如果要使用HMAC SHA256算法,簽名將創建如下:
HMACSHA256(
?base64UrlEncode(標頭)+“。“+
?base64UrlEncode(有效負載),
?秘密)
參數描述:
使用HMACSHA256: SHA256是因為頭中有ALG: HS 256。如果是alg:HS128,則為HMACSHA28。
base64 urlencode:base64中使用的三個字符是“+”、“/”和“=”。因為它們在URL中有特殊的含義,所以它們在Base64URL中被替換為:“=”被刪除,“+”被替換為“-”,“/”被替換為“_”。這是Base64URL算法。
機密:服務器給出的密鑰
簽名:最後,HMACSHA256後面的值是Base64URL,這是必需的簽名。
輸出是由點分隔的三個Base64-URL字符串,可以在HTML和HTTP環境中輕松傳遞,並且比基於XML的標準(如SAML)更緊湊。