jwt做狀態保持的優缺點及解決方案

2021-10-05 12:26:09 字數 1284 閱讀 4173

什麼是jwt

jwt是json web token的全稱,它是由三部分組成:

header中通常來說由token的生成演算法和型別組成。如:

[python] 純文字檢視

複製** ?

12

3

4

payload中則用來儲存相關的狀態資訊。如使用者id,role,name等。

[python] 純文字檢視

複製** ?

12

3

4

5

signature部分由header,payload,secret_key三部分生成,其生成公式為:

[python] 純文字檢視

複製** ?

12

3

4

hmacsha256(

base64urlencode(header)+"."+

base64urlencode(payload),

secret_key)

再將這三個部分組合成header.payload.signature的形式。

jwt如何工作首先使用者發出登入請求,服務端根據使用者的登入請求進行匹配,如果匹配成功,將相關的資訊放入payload中,利用上述演算法,加上服務端的金鑰生成token,這裡需要注意的是secret_key很重要,如果這個洩露的話,客戶端就可以隨意篡改傳送的額外資訊,它是資訊完整性的保證。生成token後服務端將其返回給客戶端,客戶端可以在下次請求時,將token一起交給服務端,一般來說我們可以將其放在authorization首部中,這樣也就可以避免跨域問題。接下來,服務端根據token進行資訊解析,再根據使用者資訊作出相應的操作。

jwt優點與缺點及對應的解決方案考慮jwt的實現,上面所述的關於session,cookies的缺點都不復存在了,不易被攻擊者利用,安全性提高。利用authorization首部傳輸token,無跨域問題。額外資訊儲存在客戶端,服務端占用資源不多,也不存在session共享問題。感覺jwt優勢很明顯,但其仍然有一些缺點:

CDN的原理及優缺點

cdn的全稱是content delivery network,即內容分發網路。其目的是通過在現有的internet中增加一層新的cache 快取 層,將 的內容發布到最接近使用者的網路 邊緣 的節點,使使用者可以就近取得所需的內容,提高使用者訪問 的響應速度。從技術上全面解決由於網路頻寬小 使用者...

JWT 身份認證優缺點分析以及常見問題解決方案

相比於 session 認證的方式來說,使用 token 進行身份認證主要有下面三個優勢 token 自身包含了身份驗證所需要的所有資訊,使得我們的伺服器不需要儲存 session 資訊,這顯然增加了系統的可用性和伸縮性,大大減輕了服務端的壓力。但是,也正是由於 token 的無狀態,也導致了它最大...

關於高度塌陷的解決方法及優缺點

2.給父元素新增屬性 overflow hidden 優點 瀏覽器好支援,簡單 缺點 當子元素有定位屬性時,設定了之後,超出部分會被隱藏掉 3.在最後乙個浮動元素之後新增乙個塊元素 來清浮動 clear both 優點 所有瀏覽器都支援,並且容器溢位不會被裁剪 缺點 在頁面中新增無意義的div,容易...