JWT 解碼器/

你的資料 100% 私隱 - JWT 完全在你的設備上進行解碼和編碼。

JWT
解碼的標頭
解碼的有效載荷
公共密鑰

了解 JWT

所有你關心的關於 JWT 的資訊,以及分步指導如何在不同框架中驗證 JWT。

什麼是 JWT?

JWT (JSON Web Token)是一種自包含的、無狀態的令牌,它以結構化和可讀的格式攜帶信息。無論你是在保護 API 或採用基於令牌的身份驗證,JWT 都是一個強大的工具,因為它們:

  • 無狀態: JWT 是自包含的,不需要服務器端狀態來驗證。JWT 可以透過簽名來確保數據的完整性。
  • 跨服務兼容性: JWT 可以輕鬆地在不同的服務之間共享和驗證。
  • 可擴展性: JWT 的有效載荷可以包含自定義聲明,允許靈活的授權和資訊共享。
進一步了解

JWT 的結構

一個典型的 JWT 被分為三部分,每部分都以 Base64URL 編碼,並且以句點(.)分隔:

  • 標頭 - 包含元數據,例如簽名算法(例如,HS256 或 RS256)和令牌的類型(JWT)。
  • 有效載荷 - 包含實際資料,例如用戶 ID、用戶配置文件、過期時間或範圍。
  • 簽名 - 標頭、有效載荷的哈希組合,並使用秘密密鑰進行保護。其目的是確保令牌的完整性,並確認它未被更改

此結構使得 JWT 可以在各方之間提供一種緊湊、可靠的資料傳輸方式。

jwt_structure

JWT 中常見的令牌聲明

聲明是有效載荷的一部分,包含關鍵資訊。以下是供你參考的標準化註冊聲明:

聲明全名描述
iss發行者發行 JWT 的實體,例如授權伺服器。
sub主題識別 JWT 的主題,通常代表經過身份驗證的用戶。
aud觀眾指定可以接受和處理令牌的收件人。這可以是多個受眾的值陣列,也可以是一個受眾的單一值。
exp過期時間設置令牌的過期時間,之後令牌變得無效。這有助於透過限制令牌的有效時間來防止重播攻擊。
nbf不早於使令牌只有在此時間戳之後才有效。當時鐘無法訪問時,這非常有用。
iat發行時間令牌被創建的時間。這可用於確定令牌的年齡。
jtiJWT ID令牌的唯一標識符,用於防止相同令牌被多次使用(例如,在重播攻擊中)。

根據授權伺服器的規範和配置,可能會在有效載荷中包含其他聲明,以支持特定的用例。你也可以向 JWT 添加自定義聲明,以滿足獨特的業務需求。

注意: 不要在 JWT 聲明中存儲私人或敏感資訊。儘管 JWT 聲明是編碼的(使用 Base64URL),但它們不是加密的。這意味著任何擁有令牌的人都可以解碼它並查看聲明,即使他們無法在不使簽名失效的情況下更改它。在必要時使用加密或其他安全的方法來保護敏感數據。

什麼時候使用 JWT?

在以下場景中,JWT 特別有用:

  1. 微服務架構: 在多個服務之間進行無狀態身份驗證。
  2. 單點登錄(SSO)系統: 允許使用一次身份驗證訪問多個應用程序。
  3. 移動應用程序: 高效地維持跨 API 調用的用戶會話。
  4. 高流量應用程序: 減少高流量環境中的數據庫負載。
  5. 跨源資源共享(CORS): 簡化跨多個域的身份驗證。
  6. 無伺服器架構: 在伺服器端會話困難的情況下,提供無狀態身份驗證。
進一步了解

如何驗證 JWT?

必須驗證 JWT 的完整性,以確保其標頭和有效載荷未被篡改。以下是在流行編程環境中驗證 JWT 的分步示例:

相關的 JWT 主題

所有你關心的關於 JWT 的資訊,以及分步指導如何在不同框架中驗證 JWT。

解鎖更多功能,使用 Logto Cloud

使用 Logto Cloud 簡化你的工作流程,確保用戶管理的安全。其建立在 OpenID Connect (OIDC) 之上,利用 JWT 提供一個可靠且可擴展的身份驗證和授權系統,旨在滿足你的需求。