無狀態登入原理

2021-09-26 23:55:27 字數 1224 閱讀 6362

1.1.什麼是有狀態?**

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

例如登入:使用者登入後,我們把登入者的資訊儲存在服務端session中,並且給使用者乙個cookie值,記錄對應的session。然後下次請求,使用者攜帶cookie值來,我們就能識別到對應session,從而找到使用者的資訊。

缺點是什麼?

1.2.什麼是無狀態**

微服務集群中的每個服務,對外提供的都是rest風格的介面。而rest風格的乙個最重要的規範就是:服務的無狀態性,即:

帶來的好處是什麼呢?

1.3.如何實現無狀態

無狀態登入的流程:

流程圖:

整個登入過程中,最關鍵的點是什麼?

token的安全性

token是識別客戶端身份的唯一標示,如果加密不夠嚴密,被人偽造那就完蛋了。

採用何種方式加密才是安全可靠的呢?

我們將採用jwt + rsa非對稱加密

1.4.非對稱加密

加密技術是對資訊進行編碼和解碼的技術,編碼是把原來可讀資訊(又稱明文)譯成**形式(又稱密文),其逆過程就是解碼(解密),加密技術的要點是加密演算法,加密演算法可以分為三類:

優點:安全,難以破解

缺點:演算法比較耗時

不可逆加密,如md5,sha

rsa演算法歷史:

2023年,三位數學家rivest、shamir 和 adleman 設計了一種演算法,可以實現非對稱加密。這種演算法用他們三個人的名字縮寫:rsa

1.5.沒有rsa加密時

在微服務架構中,我們可以把服務的鑑權操作放到閘道器中,將未通過鑑權的請求直接攔截,如圖:

發現什麼問題了?

每次鑑權都需要訪問鑑權中心,系統間的網路請求頻率過高,效率略差,鑑權中心的壓力較大。

1.6.結合rsa的鑑權

直接看圖:

無狀態登入

有狀態服務,即服務端需要記錄每次會話的客戶端資訊,從而識別客戶端身份,根據使用者身份進行請求的處理,典型的設計如tomcat中的session。例如登入 使用者登入後,我們把登入者的資訊儲存在服務端session中,並且給使用者乙個cookie值,記錄對應的session。然後下次請求,使用者攜帶c...

使用者的無狀態登入原理 token認證機制

有狀態服務,即服務端需要記錄每次會話的客戶端資訊,從而識別客戶端身份,根據使用者身份進行請求的處理,典型的設計如tomcat中的session。傳統專案中,在使用者登入後,我們把登入者的資訊儲存在服務端session中,並且給使用者乙個cookie值,記錄對應的session。然後下次請求,使用者攜...

無狀態登入配置 單點登入 JWT

多系統,單一位置登入,實現多系統同時登入的一種技術。常出現在網際網路應用和企業級平台中。單點登入一般是用於互相授信的系統,實現單一位置登入,全系統有效的。session 1 跨域 ip,埠,主機名,網域名稱任意乙個不同的時候都稱為跨域,訪問不同的域時cookie不一樣 通過設定cookie的doma...