會話、cookie、JWT、令牌、SSO和OAuth 2.0簡介

banq發表於2022-11-27

這些術語都與使用者身份管理有關。當你登入一個網站時,你宣告你是誰(識別)。你的身份被核實(認證),你被授予必要的許可權(授權)。過去已經提出了許多解決方案,而且這個名單還在不斷增加。

從簡單到複雜,以下是Alex Xu對使用者身份管理的理解。
  • WWW-Authenticate是最基本的方法。瀏覽器會要求你提供使用者名稱和密碼。由於無法控制登入的生命週期,現在已經很少使用。
  • 對登入生命週期的更精細的控制是session-cookie。伺服器保持會話儲存,而瀏覽器則保持會話的ID。一個cookie通常只適用於瀏覽器,對移動應用不友好。
  • 為了解決相容性問題,可以使用token。客戶端將令牌傳送給伺服器,而伺服器則驗證令牌的有效性。缺點是需要對令牌進行加密和解密,這可能很耗時。
  • JWT是一種代表令牌的標準方式。這種資訊可以被驗證和信任,因為它是數字簽名的。由於JWT包含簽名,所以不需要在伺服器端儲存會話資訊。
  • 透過使用SSO(單點登入),你可以只登入一次,並登入到多個網站。它使用CAS(中央認證服務)來維護跨網站資訊
  • 透過使用OAuth 2.0,你可以授權一個網站訪問你在另一個網站的資訊

相關文章