国产成人女人毛片视频在线-国产成人女人视频在线观看-国产成人女人在线观看-国产成人欧美-国产成人欧美日韩在线电影-国产成人欧美视频在线

國外產業> 正文

袁庭新老師帶你極速掌握如何在SpringBoot項目中使用JWT技術

時間: 2023-08-28 20:23:57 來源: 嗶哩嗶哩

學習目標


(資料圖)

了解JWT基本概念

掌握JWT基本使用

掌握如何在SpringBoot項目中使用JWT

了解跨域解決方案和HandlerInterceptor攔截器

SpringBoot整合JWT教學視頻見:【JWT】袁庭新老師SpringBoot+JWT快速上手1小時輕松搞定JWT

1 JWT簡介

JWT官方網址:。

什么是JWT

JSON Web Token,簡稱JWT。通過數字簽名的方式,以JSON對象為載體,在不同的服務終端之間安全的傳輸信息。JWT是目前最流行的跨域認證解決方案。

JWT有什么用

JWT通常用于Web應用程序中的身份驗證和授權目的。一旦用戶登錄,后續每個請求都將包含JWT,系統在每次處理用戶請求之前,都要先進行JWT安全校驗,通過之后再進行處理。

什么是JWT結構

JWT由Header、Playload、Signature三部分組成,由.拼接。令牌最終的格式像這樣:。在傳輸的時候,會將JWT的三個部分分別進行Base64編碼后,拼接成最終傳輸的字符串,也就是我們的Json Web Token。

Header

Header-標頭。JWT頭是一個描述JWT元數據的JSON對象。報頭通常由兩部分組成:令牌的類型和所使用的簽名算法。

typ屬性:表示令牌的類型,JWT令牌統一寫為"JWT"

alg屬性:表示使用的簽名算法,默認為HMAC SHA256(寫為HS256),或者RSA

然后,這個JSON被Base64Url編碼,以形成JWT的第一部分。

Payload

playload-載荷。存放用戶自定義的信息,通常會把用戶信息和令牌到期時間放在這里,同樣是一個JSON對象。

然后,有效負載被Base64Url編碼,以形成JWT的第二部分。

請注意,對于已簽名的令牌,這些信息雖然受到保護,不會被篡改,但任何人都可以讀取。除非經過加密,否則不要將機密信息放入JWT的payload或header中。

Payload中有七個默認字段供選擇,默認字段并不要求強制使用。我們還可以自定義私有字段,一般會把包含用戶信息的非保密數據放到Payload中。

?Signature

Signature-簽名。要創建簽名部分,您必須獲取編碼的標頭(Header)、編碼的有效載荷(Payload)、機密(secret)、標頭中指定的算法(如HS256),并對其進行簽名。

例如,如果要使用HMAC SHA256算法,則將以以下方式創建簽名:

使用標頭的算法和私鑰對第一部分和第二部分進行加密,通過Base64Url編碼后形成JWT的第三部分。

Signature用于驗證消息在發送過程中沒有更改,在使用私鑰簽名的令牌的情況下,它還可以驗證JWT的發送者是否就是它所說的那個人。

Putting all together

輸出是三個由點分隔的Base64-URL字符串,可以在HTML和HTTP環境中輕松傳遞,同時與基于XML的標準(如SAML)相比更緊湊。

以下顯示了一個JWT,該JWT具有以前的標頭和有效載荷編碼,并使用秘密簽名。

如果你想玩JWT并將這些概念付諸實踐,你可以使用/#debugger-io來解碼、驗證和生成JWT。

JWT執行流程

JWT的具體執行流程見下:

JWT優點

基于Token的認證方式相比傳統的Session認證方式能夠解決移動端和分布式開發中跨域問題,具有下列優點:

減少服務器壓力:服務端不需要存儲Session信息,Token可以攜帶登錄用戶服務器所需信息

支持跨域訪問:將Token放到請求頭中,就不需要Cookie存儲信息,所以跨域后不會因為Cookie是無法跨域而導致信息丟失

更適用于移動端:當客戶端是非瀏覽器平臺時或者Cookie被禁止時,采用Token認證方式會簡單很多

更適用CDN:可以通過內容分發網絡請求服務端的所有資料

無需考慮CSRF:由于不再依賴Cookie,所以采用Token認證方式不會發生CSRF,所以也就無需考慮CSRF的防御

2 JWT使用

JWT基本使用

1.使用IDEA創建一個【Spring Initializr】類型的項目名稱為【springboot_jwt】的工程。

2.在項目的配置文件中添加JWT相關依賴。

3.在_包下創建JwtTests測試類,演示JWT的基本使用。

SpringBoot+JWT

1.在_包下創建User實體類。

2.在_包下創建響應統一結果集ResponseResult工具類。

3.在_包下創建JWT操作的工具類。

4.在_包下創建UserController控制層類。

5.使用ApiPost測試工具向http://localhost:8080/users/login接口發送POST類型的請求并提交JSON格式的數據。

6.使用ApiPost測試工具將上一個接口返回的JWT字符串數據,作為本次請求token參數的數據放在Header中提交給服務進行驗證。

HandlerInterceptor攔截器

1.創建攔截器類,并實現接口。

2.創建LoginInterceptorConfigurer攔截器的配置類并實現接口,配置類需要添加@Configruation注解修飾。

?跨域解決方案

解決在前后端分離項目中的跨域問題。通過實現WebMvcConfigurer接口,并重寫addCorsMappings(CorsRegistry registry)方法來實現。

關鍵詞:

責任編輯:QL0009

為你推薦

關于我們| 聯系我們| 投稿合作| 法律聲明| 廣告投放

版權所有 © 2020 跑酷財經網

所載文章、數據僅供參考,使用前務請仔細閱讀網站聲明。本站不作任何非法律允許范圍內服務!

聯系我們:315 541 [email protected]

主站蜘蛛池模板: 亚洲欧美日韩综合一区在线观看 | 91视频网址 | 91精品免费国产高清在线 | 国内精品免费网站niuniu | 91欧美在线 | 成全影视| 精品亚洲a | 国产剧情三级片在线观看 | 久久高潮 | 无码人妻一区二区三区av | 国产伦精品一区二区三区免费 | 韩国欧美国产 | 国产精品av免费观看 | 国产午夜无码专区喷水 | 91爱豆传媒国产成人网站 | 国产一级婬片视频免费观看 | 国产电影在线观看 | 亚洲国产变态另类天堂 | 国产精品无码2025在线观看 | 国产亚洲精品va片在线播放 | 超碰久久人人摸人人搞 | 伊伊人成亚洲综合人网7777 | 日韩av午夜无码专区 | 人人妻人人爽 | 黄色影院 | 国产一区二区成人久久免费影院 | 欧美色欧美亚洲高清在线视频 | 国产一区二区三区在线观 | 亚洲aⅴ无码专区在线观看 亚洲aⅴ一区二区三区四区 | 国产黄大片 | 国产9色视频91视频 国产ⅴ片在线播放免费无码 | 亚洲五月六月丁香激情综合 | 97人人摸人人操 | 国自产精品手机在线视拍 | 午夜国产片在线观看精品 | 91免费伊人| 国产熟妇无码a片aaa毛片视频 | 久久成人免费观看全部免费 | 国产三级毛视频在线观看 | 亚洲日本成本人观看 | 欧美色伦一区二 |