單機和分布式應用下使用者登入校驗(筆記)

2021-09-25 07:47:44 字數 1247 閱讀 9716

1、單機和分布式應用的登入檢驗講解

簡介:講解單機和分布式應用下登入校驗,session共享,分布式快取使用

1、單機tomcat應用登入檢驗

sesssion儲存在瀏覽器和應用伺服器會話之間

使用者登入成功,服務端會保證乙個session,當然會給客戶端乙個sessionid,

客戶端會把sessionid儲存在cookie中,每次請求都會攜帶這個sessionid

2、分布式應用中session共享

真實的應用不可能單節點部署,所以就有個多節點登入session共享的問題需要解決

1)tomcat支援session共享,但是有廣播風暴;使用者量大的時候,占用資源就嚴重,不推薦

2)使用redis儲存token:

服務端使用uuid生成隨機64位或者128位token,放入redis中,然後返回給客戶端並儲存在cookie中

使用者每次訪問都攜帶此token,服務端去redis中校驗是否有此使用者即可

2、微服務下登入檢驗解決方案 jwt講解

簡介:微服務下登入檢驗解決方案 jwt講解 json wen token

1、jwt 是乙個開放標準,它定義了一種用於簡潔,自包含的用於通訊雙方之間以 json 物件的形式安全傳遞資訊的方法。

jwt 可以使用 hmac 演算法或者是 rsa 的公鑰金鑰對進行簽名

***x

//成功返回true,失敗返回false

}優點:

1)生產的token可以包含基本資訊,比如id、使用者暱稱、頭像等資訊,避免再次查庫

2)儲存在客戶端,不占用服務端的記憶體資源

缺點:token是經過base64編碼,所以可以解碼,因此token加密前的物件不應該包含敏感資訊

如使用者許可權,密碼等

2、jwt格式組成 頭部、負載、簽名

header+payload+signature

頭部:主要是描述簽名演算法

負載:主要描述是加密物件的資訊,如使用者的id等,也可以加些規範裡面的東西,如iss簽發者,exp 過期時間,sub 面向的使用者

簽名:主要是把前面兩部分進行加密,防止別人拿到token進行base解密後篡改token

3、關於jwt客戶端儲存

可以儲存在cookie,localstorage和sessionstorage裡面

1、加入相關依賴

io.jsonwebtoken

jjwt

0.7.0

2、開發生產token方法

3、開發檢驗token方法

redis 單機鎖 和 分布式鎖

偷自 require vendor autoload.php client new predis client scheme tcp host 127.0.0.1 port 6379,class redislock desc 獲取鎖鍵名 public function getlockcachekey...

單機,分布式和集群的區別

我想大家最最最熟悉的就是單機結構,乙個系統業務量很小的時候所有的 都放在乙個專案中就好了,然後這個專案部署在一台伺服器上就好了。整個專案所有的服務都由這台伺服器提供。這就是單機結構。那麼,單機結構有啥缺點呢?我想缺點是顯而易見的,單機的處理能力畢竟是有限的,當你的業務增長到一定程度的時候,單機的硬體...

如何把應用從單機擴充套件到分布式

目錄 第一版 單台伺服器應用 第二版 應用伺服器和資料庫伺服器分離 第三版 應用伺服器集群 第四版 負載均衡器 第五版 資料庫伺服器集群 第六版 搜尋引擎集群 第七版 快取伺服器 第八版 資料庫水平 垂直拆分 第九版 應用伺服器垂直拆分 第十版 soa服務 分布式架構 本節會學習以下內容 出現以下問...