日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

和jwt_秒懂 JWT

發布時間:2025/3/19 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 和jwt_秒懂 JWT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | 喵叔

責編 | 胡巍巍

出品 | 程序人生(ID:coder_life)

JWT 英文名是 Json Web Token ,是一種用于通信雙方之間傳遞安全信息的簡潔的、URL安全的表述性聲明規范,經常用在跨域身份驗證。

JWT 以 JSON 對象的形式安全傳遞信息。因為存在數字簽名,因此所傳遞的信息是安全的。

在講解 JWT 之前我們先來看一個問題。我們都知道 Internet 服務的身份驗正過程是這樣的,客戶端向服務器發送登錄名和登錄密碼,服務器驗證后將對應的相關信息保存到當前會話中,這些信息包括權限、角色等數據。

服務器向客戶端返回 Session ,Session 信息都會寫入到客戶端的 Cookie 中,后面的請求都會從 Cookie 中讀取 Session 發送給服務器,服務器在收到 Session 后會對比保存的數據來確認客戶端身份。

但是上述模式存在一個問題,無法橫向擴展。在服務器集群或者面向服務且跨域的結構中,需要數據庫來保存 Session 會話,實現服務器之間的會話數據共享。

在單點登錄中我們會遇到上述問題,當有多個網站提供同一撥服務,那么我們該怎么實現在甲網站登陸后其他網站也同時登錄呢?

其中一種方法是持久化 Session 數據,也就是上面所說的將 Session 會話存到數據庫中。這個方法的優點是架構清晰明了。

但是缺點也非常明顯,就是架構修改很困難,驗證邏輯需要重寫,并且整體依賴于數據庫,如果存儲 Session 會話的數據庫掛掉那么整個身份認證就無法使用,進而導致系統無法登錄。要解決這個問題我們就用到了 JWT 。

JWT 簡述

客戶端身份經過服務器驗證通過后,會生成帶有簽名的 JSON 對象并將它返回給客戶端。客戶端在收到這個 JSON 對象后存儲起來。

在以后的請求中客戶端將 JSON 對象連同請求內容一起發送給服務器,服務器收到請求后通過 JSON 對象標識用戶,如果驗證不通過則不返回請求的數據。

驗證不通過的情況有很多,比如簽名不正確、無權限等。在 JWT 中服務器不保存任何會話數據,使得服務器更加容易擴展。

Base64URL 算法

在講解 JWT 的組成結構前我們先來講解一下 Base64URL 算法。這個算法和 Base64 算法類似,但是有一點區別。

我們通過名字可以得知這個算法使用于 URL 的,因此它將 Base64 中的 + 、 / 、 = 三個字符替換成了 - 、 _ ,刪除掉了 = 。因為這個三個字符在 URL 中有特殊含義。

JWT 組成結構

JWT 是由三段字符串和兩個 . 組成,每個字符串和字符串之間沒有換行(類似于這樣:xxxxxx.yyyyyy.zzzzzz),每個字符串代表了不同的功能,我們將這三個字符串的功能按順序列出來并講解:

1. JWT 頭

JWT 頭描述了 JWT 元數據,是一個 JSON 對象,它的格式如下:

json

{

"alg":"HS256

總結

以上是生活随笔為你收集整理的和jwt_秒懂 JWT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。