JWT - JSON Web Tokens 是什麼?通常用於何處?

什麼是JWT – JSON Web Tokens?

JWT(JSON Web Tokens)是一種開放標準(RFC 7519),用於在網絡上安全地傳遞信息。JWT 是一種緊湊且自包含的方式,用於在各方之間作為 JSON 對象安全地傳輸信息。這些信息可以被驗證和信任,因為它是數字簽名的。

由於其簡潔性和安全性,JWT 在許多現代 Web 應用程序和 API 中被廣泛使用,特別是在單頁應用(SPA)、微服務架構和跨域通信中。

JWT 通常用於以下情況:

  1. 身份驗證:在用戶成功登錄後,每個後續的請求都將包括 JWT,允許用戶訪問該令牌允許的路由、服務和資源。JWT 的身份驗證流程是無狀態的,這意味著服務器端不需要保存用戶的認證信息。
  2. 資訊交換:JWT 是一種安全的方式在雙方之間交換信息。由於 JWT 可以簽名(例如使用公開/私有密鑰對),因此你可以確保發送者是誰以及消息在傳輸過程中未被篡改。

JWT 的結構包含三個部分:

  • Header(頭部):通常包含令牌的類型(即 JWT)和所使用的簽名算法,如 HMAC SHA256 或 RSA。
  • Payload(負載):包含聲明。聲明是有關實體(通常是用戶)和其他數據的陳述。有三種類型的聲明:註冊聲明(例如,用戶名)、公共聲明和私有聲明。
  • Signature(簽名):為了得到簽名部分,你必須對編碼後的 header 和 payload 使用一個秘密金鑰,然後用頭部中指定的算法進行簽名。