為什麼我們需要使用 JSON Web Tokens

讓我們討論下 JSON Web Tokens (JWT) 針對 Simple Web Tokens (SWT) 和 Security Assertion Markup Language Tokens (SAML) 而言有什麼優勢吧。

相對 XML 來說,JSON 格式更加簡潔,對 JSON 格式進行編碼後的數據量更小,這就使得 JWT 相對 SAML 來說顯得更加小巧,這使得 JWT 更加容易能夠在 HTTP 和 HTML 環境之間傳遞數據。

在安全性上面,SWT 只能使用通過 HMAC 算法的對稱方式簽名。JWT 和 SAML 都可以使用基於 X.509 認證的公鑰/私鑰 密鑰對的方式進行加密和解密。相比針對 JSON 格式的簽名,針對XML 的數字簽名更加容易導入安全漏洞。

在 JSON 格式的處理上,當前幾乎所有的語言都能夠支持和進行解析,這是因為 JSON 格式的數據更加容易映射到數據對象中。XML 則沒有針對文本到對象的映射支持。這就導致了相對 SAML 來說,JWT 的處理更加容易。

在使用方面,JWT 已經被大量的在互聯網上面取得了應用,針對多平臺的使用上,JSON 格式在客戶端上面更加容易被使用,尤其是針對移動平臺。

針對 JSON 和 SAML 數據格式的內容對比,請參考下面的圖片:

為什麼我們需要使用 JSON Web Tokens

從上面的圖片的對比上,我們可以看到基於 JSON 格式的內容更少,表達性更好。

如果你希望瞭解更多有關 JSON Web Tokens 的使用,並且打算開始在你的系統中應用這種格式,請參考由 Auth0 官方提供的介紹和文檔。


分享到:


相關文章: