iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0

什麼是 JWT?

JSON Web Token(JWT)是一種開放標準(RFC 7519),用於在網絡應用環境間安全地傳輸信息。JWT 可以被簽名(使用 HMAC 算法或者 RSA/ECDSA 的公鑰/私鑰對),因此可以驗證其完整性。

JWT 的結構

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

  1. 頭部(Header)
  2. 載荷(Payload)
  3. 簽名(Signature)

頭部(Header)

包含令牌的類型和使用的演算法。

載荷(Payload)

包含聲明(claims)。聲明是關於實體(通常是用戶)和其他數據的聲明。

簽名(Signature)

用於驗證消息在傳輸過程中沒有被更改,並且,對於使用私鑰簽名的令牌,它還可以驗證 JWT 的發送方是否為它所稱的發送方。

JWT 的應用

JWT 主要用於以下兩種場景:

  1. 認證(Authentication):這是使用 JWT 的最常見場景。一旦用戶登錄,每個後續請求都將包括 JWT,允許用戶訪問該令牌允許的路由、服務和資源。

  2. 訊息交換:JWT 是在各方之間安全地傳輸信息的好方法。因為 JWT 可以被簽名,所以你可以確定發送者就是它們所說的那個人。

JWT 的優點

  • 是一個綜合標準,可以同時包含JWS(用於簽名)和JWE(用於加密)的功能。

  • 提供了一個簡單的方式來傳輸聲明(claims),這些聲明可以被簽名和/或加密。

  • 廣泛用於身份驗證和授權場景,特別是在分佈式系統中。

  • 的結構使得它易於在不同的系統和語言之間傳遞和處理。

  • 相比單獨使用JWE或JWS,JWT提供了更完整的安全解決方案,可以根據需求選擇是否加密或簽名。

  • 已經成為業界標準,有廣泛的工具和庫支持,使得實現和維護變得更加容易。

結論

JWT 是一種靈活且安全的方式來處理用戶認證和訊息交換。它的簡單性和多功能性使其成為現代 Web 應用程序中廣泛使用的技術。


上一篇
Day23 - 實作 JWK
下一篇
Day25 - 實作 Signed JWT
系列文
Xiang教你進階Swift從有到精30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言