成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

閑魚面試:說說JWT工作原理?

開發 前端
你可以把 JWT 想象成一張小巧的、自包含的電子通行證。這張通行證里面包含了用戶的身份信息,就像你在某個俱樂部的會員卡,上面有你的名字、會員等級等信息,拿著這張卡,你就能證明你是誰,享受相應的服務。

JWT(JSON Web Token)一種開放的標準規范(RFC 7519),用于在網絡上安全的傳輸信息,通常被用于身份驗證。

簡單來說,你可以把 JWT 想象成一張小巧的、自包含的電子通行證。這張通行證里面包含了用戶的身份信息,就像你在某個俱樂部的會員卡,上面有你的名字、會員等級等信息,拿著這張卡,你就能證明你是誰,享受相應的服務。

1.JWT組成

JWT 由三部分組成:頭部(Header)、載荷(Payload)和簽名(Signature),如下圖所示:

  • 頭部(Header):包含了關于生成該 JWT 的信息以及所使用的算法類型。
  • 載荷(Payload):包含了要傳遞的數據,例如身份信息和其他附屬數據。JWT 官方規定了 7 個字段,可供使用:
  1. iss (Issuer):簽發者。
  2. sub (Subject):主題。
  3. aud (Audience):接收者。
  4. exp (Expiration time):過期時間。
  5. nbf (Not Before):生效時間。
  6. iat (Issued At):簽發時間。
  7. jti (JWT ID):編號。
  • 簽名(Signature):使用密鑰對頭部和載荷進行簽名,以驗證其完整性。

JWT 官網:https://jwt.io/

2.JWT工作原理

JWT 工作原理包含三部分:

  • 生成 JWT
  • 傳輸 JWT
  • 驗證 JWT

下面分別來看。

(1)生成JWT

在用戶登錄時,當服務器端驗證了用戶名和密碼的正確性后,會根據用戶的信息,如用戶 ID 和用戶名稱,加上服務器端存儲的 JWT 秘鑰一起來生成一個 JWT 字符串,也就是我們所說的 Token,這個 Token 是 Encoded 編碼過的,類似于:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Decoded 解碼后會得到三部分內容:頭部(Header)+載荷(Payload)+簽名(Signature)。

  1. 頭部(Header):包含了關于生成該 JWT 的信息以及所使用的算法類型。
  2. 載荷(Payload):包含了要傳遞的數據,例如身份信息和其他附屬數據。
  3. 簽名(Signature):使用密鑰對頭部和載荷進行簽名,以驗證其完整性。

(2)傳輸JWT

JWT 通常存儲在客戶端的 Cookie、LocalStorage、SessionStorage 等位置,客戶端在每次請求時把 JWT 放在 Authorization 頭中或作為參數傳遞給服務器端。

(3)驗證JWT

  • 服務器端接收到 JWT 的 Token 后,會先將 Token Decoded 解碼,之后會得到頭部(Header)+載荷(Payload)+簽名(Signature)。
  • 然后服務器端會使用它本地存儲的秘鑰,以及頭部(Header)中的加密算法和載荷(Payload)中的信息進行重新加密,得到一個新的簽名。
  • 最后會判斷 Token 的真偽,用上一步新生成的簽名和 Decoded 解碼得到的簽名(Signature)進行判斷,如果二者一致,則說明當前的 Token 有效性的、完整的,可以執行后續的操作了,否則則返回 Token 錯誤。當然在這一步判斷時,我們通常也要看載荷(Payload)中的過期時間是否有效,如果無效,則需要提示用戶重新登錄。

3.JWT優勢

JWT 相較于傳統的基于會話(Session)的認證機制,具有以下優勢:

  • 無需服務器存儲狀態:傳統的基于會話的認證機制需要服務器在會話中存儲用戶的狀態信息,包括用戶的登錄狀態、權限等。而使用 JWT,服務器無需存儲任何會話狀態信息,所有的認證和授權信息都包含在 JWT 中,使得系統可以更容易地進行水平擴展。
  • 跨域支持:由于 JWT 包含了完整的認證和授權信息,因此可以輕松地在多個域之間進行傳遞和使用,實現跨域授權。
  • 適應微服務架構:在微服務架構中,很多服務是獨立部署并且可以橫向擴展的,這就需要保證認證和授權的無狀態性。使用 JWT 可以滿足這種需求,每次請求攜帶 JWT 即可實現認證和授權。
  • 自包含:JWT 包含了認證和授權信息,以及其他自定義的聲明,這些信息都被編碼在 JWT 中,在服務端解碼后使用。JWT 的自包含性減少了對服務端資源的依賴,并提供了統一的安全機制。
  • 擴展性:JWT 可以被擴展和定制,可以按照需求添加自定義的聲明和數據,靈活性更高。

使用 JWT 相較于傳統的基于會話的認證機制,可以減少服務器存儲開銷和管理復雜性,實現跨域支持和水平擴展,并且更適應無狀態和微服務架構。

責任編輯:姜華 來源: 磊哥和Java
相關推薦

2025-04-16 00:00:01

JWT客戶端存儲加密令

2024-03-11 18:18:58

項目Spring線程池

2024-06-20 08:06:51

2024-03-05 10:33:39

AOPSpring編程

2024-08-22 10:39:50

@Async注解代理

2024-07-05 17:47:21

@Async項目啟動類

2021-07-09 11:29:22

交易鏈路閑魚阿里云

2024-02-29 16:49:20

volatileJava并發編程

2024-06-24 00:09:00

零拷貝技術MMapsendFile

2024-11-19 15:13:02

2024-08-29 16:30:27

2023-12-27 18:16:39

MVCC隔離級別幻讀

2024-08-12 17:36:54

2021-07-16 07:57:34

ReduxDOM組件

2018-08-25 14:07:24

數據聚合閑魚前端

2024-03-28 10:37:44

IoC依賴注入依賴查找

2024-07-04 17:22:23

2024-07-31 08:28:37

DMAIOMMap

2024-03-14 14:56:22

反射Java數據庫連接

2024-12-06 07:00:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区小视频 | 国产乡下妇女做爰 | 国产乱码精品一品二品 | 在线看91 | 国产一区二区在线视频 | 五月婷婷激情网 | 涩涩视频在线观看 | 在线视频中文字幕 | 久久久久久久久久久久久9999 | 亚洲精品一区二三区不卡 | 精品国产一区二区三区av片 | 91免费视频观看 | 男女羞羞在线观看 | a级毛片毛片免费观看久潮喷 | 精久久久 | 91热爆在线观看 | 一区二区高清在线观看 | 午夜视频导航 | 亚洲美女网站 | 断背山在线观看 | 国产成人99久久亚洲综合精品 | 91免费高清 | 欧美日韩国产在线观看 | 91在线网站 | 男女羞羞免费视频 | 看片一区| 成人在线免费电影 | 精品欧美一区二区三区精品久久 | 久久久久国产 | 国产日韩欧美激情 | 久久国产精品色av免费观看 | 日韩久久中文字幕 | 欧美激情视频一区二区三区在线播放 | 国产伦精品一区二区三区高清 | 亚洲精品成人在线 | 中文字幕视频一区二区 | 91精品一区 | 国产成人精品一区二区三区在线 | 不用播放器看的av | 不卡在线视频 | 欧美成人免费电影 |