無狀態登錄原理

有無狀態登錄,相對應的就會有有狀態登錄.

什麼是有狀態登錄?

  有狀態服務,即服務端需要記錄每次會話的客戶端信息,從而識別客戶端身份,根據用戶身份進行請求的處理,典型的設計如tomcat中的session.

例如:用戶登錄後,我們把登錄者的信息保存在服務端的session中,並且給用戶一個cookie值,來記錄對於的session,然後下次請求的時候,用戶攜帶cookie來,我們就能識別到session中的用戶的信息。

   有什麼缺點呢?

  1.服務端保存大量數據,增加服務端壓力。

  2.服務端保存用戶信息,無法水平擴展。

  3.客戶端依賴服務端,多次請求必須訪問同一臺服務器

 

什麼是無狀態登錄?

  微服務集羣中的每個服務,對外提供的rest風格的接口,而rest風格的一個最重要的規範就是:服務的無狀態性。即:

    服務端不保存任何客戶端請求者的信息。

    客戶端的每次請求都必須具備自述信息,通過這些信息識別客戶端身份。

帶來的好處:

    客戶端的請求不依賴服務端,每次請求不需要訪問同一臺服務器

    減小服務端的存儲壓力

    服務端的集羣和狀態對客戶端時透明的

    服務端可以任意的遷移和伸縮

如何實現無狀態登錄.

  無狀態登錄流程:

          當客戶端第一次登錄的時候,服務端對用戶進行信息認證。(登錄)

          認證通過,將用戶信息進行加密形成token,返回給客戶端,作爲登錄憑證。

          以後每次的請求,客戶端都攜帶認證的token。

          服務端對token進行解密,判斷是否有效。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章