1. 程式人生 > >JWT(JSON WEB TOKEN) / oauth2 / SSL

JWT(JSON WEB TOKEN) / oauth2 / SSL

bash 字符 維護 ssl 信息 簡單 角色 ron 保存會話

1: JWT:

  為了在網絡應用環境間傳遞聲明而執行的一種基於JSON的開放標準((RFC 7519).該token被設計為緊湊且安全的,特別適用於分布式站點的單點登錄(SSO)場景。JWT的聲明一般被用來在身份提供者和服務提供者間傳遞被認證的用戶身份信息,以便於從資源服務器獲取資源,也可以增加一些額外的其它業務邏輯所必須的聲明信息,該token也可直接被用於認證,也可被加密。

  JWT是由三段信息構成的,將這三段信息文本用.鏈接一起就構成了Jwt字符串。就像這樣:

header . playload.signature

請求的時候是這樣的:

  headers: {
    Authorization
‘: Bearer ‘ + token // 註意Bearer後面有空格 }

優點

  • 因為json的通用性,所以JWT是可以進行跨語言支持的,像JAVA,JavaScript,NodeJS,PHP等很多語言都可以使用。
  • 因為有了payload部分,所以JWT可以在自身存儲一些其他業務邏輯所必要的非敏感信息。
  • 便於傳輸,jwt的構成非常簡單,字節占用很小,所以它是非常便於傳輸的。
  • 它不需要在服務端保存會話信息, 所以它易於應用的擴展
 具體的認證實現方式:  待續...

2: JWT VS Oauth:
WT是一種認證協議
OAuth2是一種授權框架,OAuth2不是一個標準協議。它詳細描述了系統中不同角色、用戶、服務前端應用(比如API),以及客戶端(比如網站或移動App)之間怎麽實現相互認證。

在討論OAuth2的實現時,會把JSON Web Token作為一種認證機制使用。這也是為什麽他們會經常一起出現.
Oauth2和JWT是如何結合的, 待續... ...
3: SSL
SSL(Secure Sockets Layer 安全套接層) 是在傳輸層對網絡傳輸數據進行加密。SSL協議位於TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持。
SSL協議可分為兩層: SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。
SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。
  SSL功能:     1)認證用戶和服務器,確保數據發送到正確的客戶機和服務器;     2)加密數據以防止數據中途被竊取;     3)維護數據的完整性,確保數據在傳輸過程中不被改變
    OAuth2和JWT的實現之前,都需要SSL安全保護,也就是對要傳輸的數據進行加密編碼。安全地傳輸用戶提供的私密信息,
在任何一個安全的系統裏都是必要的。否則任何人都可以通過侵入私人wifi,在用戶登錄的時候竊取用戶的用戶名和密碼等信息。

JWT(JSON WEB TOKEN) / oauth2 / SSL