1. 程式人生 > 遊戲 >原定於12月發售的Xbox Series X冰箱現已提前到貨

原定於12月發售的Xbox Series X冰箱現已提前到貨

說到JWT前,還是要先了解token(按照一定規則生成的字串),
而JWT就是現在通用的官方一種規則,JWT已經規定好了生成字串的規則。
使用 JWT規則可以生成字串,包含使用者的資訊

JWT生成的資訊介紹

生成的資訊包含三部分、

  • 一、JWT頭部分
JWT頭部分是一個描述JWT元資料的json物件
通常如下所示:
{
  "alg":"HS256",//一種編碼方式
  "typ":"JWT"
}
  • 二、有效荷載
有效載荷部分,是JWT的主體內容部分,也是一個JSON物件,包含需要傳遞的資料。 JWT指定七個預設欄位供選擇
1 iss:發行人
2 exp:到期時間
3 sub:主題
4 aud:使用者
5 nbf:在此之前不可用
6 iat:釋出時間
7 jti:JWT ID用於標識該JWT

除以上預設欄位外,我們還可以自定義私有欄位,如下例:
{ 
   "sub": "1234567890", 
   "name": "Helen", 
   "admin": true
}

請注意,預設情況下JWT是未加密的,任何人都可以解讀其內容,因此不要構建隱私資訊欄位,存放保密
資訊,以防止資訊洩露。JSON物件也使用Base64 URL演算法轉換為字串儲存
  • 三、簽名雜湊(防偽標誌)
簽名雜湊部分是對上面兩部分資料簽名,通過指定的演算法生成雜湊,以確保資料不會被篡改。
首先,需要指定一個密碼(secret)。該密碼僅僅為儲存在伺服器中,並且不能向用戶公開。然後,使用
標頭中指定的簽名演算法(預設情況下為HMAC SHA256)根據以下公式生成簽名
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(claims), secret)

在計算出簽名雜湊後,JWT頭,有效載荷和簽名雜湊的三個部分組合成一個字串,每個部分用"."分隔,
就構成整個JWT物件。