日本电影一区二区三区-日本调教网站-日本碟片在线播放-日本丰满大乳人妻无码-日本丰满大乳人妻无码苍井空-日本丰满大乳人妻无码水卜樱

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

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

學(xué)習(xí)目標(biāo)


(資料圖)

了解JWT基本概念

掌握J(rèn)WT基本使用

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

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

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

1 JWT簡介

JWT官方網(wǎng)址:。

什么是JWT

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

JWT有什么用

JWT通常用于Web應(yīng)用程序中的身份驗證和授權(quán)目的。一旦用戶登錄,后續(xù)每個請求都將包含JWT,系統(tǒng)在每次處理用戶請求之前,都要先進(jìn)行JWT安全校驗,通過之后再進(jìn)行處理。

什么是JWT結(jié)構(gòu)

JWT由Header、Playload、Signature三部分組成,由.拼接。令牌最終的格式像這樣:。在傳輸?shù)臅r候,會將JWT的三個部分分別進(jìn)行Base64編碼后,拼接成最終傳輸?shù)淖址簿褪俏覀兊腏son Web Token。

Header

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

typ屬性:表示令牌的類型,JWT令牌統(tǒng)一寫為"JWT"

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

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

Payload

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

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

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

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

?Signature

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

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

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

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

Putting all together

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

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

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

JWT執(zhí)行流程

JWT的具體執(zhí)行流程見下:

JWT優(yōu)點

基于Token的認(rèn)證方式相比傳統(tǒng)的Session認(rèn)證方式能夠解決移動端和分布式開發(fā)中跨域問題,具有下列優(yōu)點:

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

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

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

更適用CDN:可以通過內(nèi)容分發(fā)網(wǎng)絡(luò)請求服務(wù)端的所有資料

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

2 JWT使用

JWT基本使用

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

2.在項目的配置文件中添加JWT相關(guān)依賴。

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

SpringBoot+JWT

1.在_包下創(chuàng)建User實體類。

2.在_包下創(chuàng)建響應(yīng)統(tǒng)一結(jié)果集ResponseResult工具類。

3.在_包下創(chuàng)建JWT操作的工具類。

4.在_包下創(chuàng)建UserController控制層類。

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

6.使用ApiPost測試工具將上一個接口返回的JWT字符串?dāng)?shù)據(jù),作為本次請求token參數(shù)的數(shù)據(jù)放在Header中提交給服務(wù)進(jìn)行驗證。

HandlerInterceptor攔截器

1.創(chuàng)建攔截器類,并實現(xiàn)接口。

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

?跨域解決方案

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

關(guān)鍵詞:

責(zé)任編輯:QL0009

為你推薦

關(guān)于我們| 聯(lián)系我們| 投稿合作| 法律聲明| 廣告投放

版權(quán)所有 © 2020 跑酷財經(jīng)網(wǎng)

所載文章、數(shù)據(jù)僅供參考,使用前務(wù)請仔細(xì)閱讀網(wǎng)站聲明。本站不作任何非法律允許范圍內(nèi)服務(wù)!

聯(lián)系我們:315 541 185@qq.com

主站蜘蛛池模板: 婷婷丁香视频| 精品国产成人系列| 国精产品一区二区三区有限 | 免费观看全黄做爰| 精品久久免费一区二| 国产亚洲精品久久久久久入口| 国产精品原创尤物菠萝蜜| 国产黄A片在线观看永久免费麻豆 国产黄A三级三级三级AV在线看 | 麻豆午夜视频| 久久AV国产麻豆HD真实| 国产亚洲视频免费播放| 国产成人综合亚洲亚洲国产第一页 | 狠狠色噜噜| 欧美日韩国产一区国产二区| 丁香花在线影院观看在线播放 | 国产又黄又猛又粗又爽的A片漫| 国产精品高潮呻吟爱久久AV无码| 国产成人精品一区二区秒拍| 爆乳无码一区二区在线观看ai| av无码久久久久久久久不卡网站| 91久久精品无码一区二区软件 | 精品国产欧美| 国产丝袜啪啪| 国产a级黄色毛片| 成人爽a毛片在线视频| a在线观看免费| 中文字幕无码久久精品| 一本久道热线在线 视频| 天天综合永久人人| 男女做爰全A片免费的看| 精品国产人妻一区二区三区免费| 国产精品剧情一区二区在线观看 | 欧美成人精品A片免费一区99| 精品少妇无码av无码专区| 国产精品涩涩涩视频网站| 白丝制服被啪到喷水很黄很暴力| 亚洲一本到无码av中文字幕| 日本最新免费的一区二区| 免费看日韩A片无码视频软件| 精品国产亚洲一区二区三区四区 | 成人亚洲A片V一区二区三区日本|