什麼是 JWT 以及它是如何運作的?

8 min read
JWT, Security, Authentication

JSON Web Token 簡介

JSON Web Token (JWT) 是一個開放標準 (RFC 7519),已成為現代 Web 應用程式中安全資訊交換的事實標準。在 2025 年,JWT 繼續成為在分散式系統、微服務架構和雲端原生應用程式中實施身分驗證和授權的關鍵技術。這份綜合指南將探討您需要瞭解的關於 JWT 的一切,從基本概念到進階實施策略。

JWT 的結構

JWT 由三個部分組成,用點 (.) 分隔:

  • 標頭 (Header):包含權杖的類型和簽章演算法
  • 酬載 (Payload):包含聲明 - 關於實體的陳述和額外的中繼資料
  • 簽章 (Signature):確保權杖未被竄改

1. 標頭 (Header)

標頭通常由兩部分組成:權杖的類型(JWT)和使用的簽章演算法(如 HS256、RS256 或 ES256)。在 2025 年,EdDSA (Ed25519) 因其卓越的效能和安全特性而越來越受歡迎。

{
  "alg": "HS256",
  "typ": "JWT"
}

2. 酬載 (Payload)

酬載包含聲明,這些是關於實體(通常是使用者)和額外資料的陳述。有三種類型的聲明:

  • 註冊聲明:預定義的聲明,如 iss(發行者)、exp(過期時間)、sub(主題)
  • 公開聲明:可以由使用 JWT 的人定義
  • 私有聲明:同意使用它們的各方之間共享資訊的自訂聲明

3. 簽章 (Signature)

要建立簽章部分,您必須取得編碼的標頭、編碼的酬載、一個密鑰、標頭中指定的演算法,並對其進行簽章。

JWT 如何運作

在認證中,當使用者使用其憑證成功登入時,將返回 JSON Web Token。由於權杖是憑證,必須非常小心以防止安全問題。一般來說,您不應該將權杖保留超過所需的時間。

最佳實踐

  • 始終使用 HTTPS 來防止中間人攻擊
  • 保持權杖過期時間短暫
  • 切勿在 JWT 中儲存敏感資訊
  • 實施適當的權杖撤銷機制
  • 使用強簽章演算法(在 2025 年,推薦使用 RS256、ES256 或 EdDSA)

結論

JWT 提供了一種強大而靈活的方式來處理現代應用程式中的認證和授權。透過瞭解其結構和正確的實施,您可以建立安全且可擴充的認證系統。

Share this article

Back to Blog