91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET Core WebAPI集成JWT,實現身份驗證

發布時間:2020-09-15 21:17:51 來源:網絡 閱讀:234 作者:wx5d37d5fd4aa62 欄目:編程語言

前兩篇文章給大家介紹了在.NET Core中如何使用Swagger的文章,那今天給大家分享一下JWT

在做接口開發的同學可能都有感受,我的接口如何保護的問題,如果沒有身份驗證,那不是接口完全暴露在外面,任意使人調用,這顯然不是我們想要的一種結果。當然做身份驗證的方式有多種,今天給大家講一種比較流行了,標準的身份驗證JWT

什么是JWT?
.NET Core WebAPI集成JWT,實現身份驗證

隨著技術的發展,分布式web應用的普及,通過session管理用戶登錄狀態成本越來越高,因此慢慢發展成為token的方式做登錄身份校驗,然后通過token去取redis中的緩存的用戶信息,隨著之后jwt的出現,校驗方式更加簡單便捷化,無需通過redis緩存,而是直接根據token取出保存的用戶信息,以及對token可用性校驗,單點登錄更為簡單。

JWT的結構體是什么樣的?

JWT由三部分組成,分別是頭信息、有效載荷、簽名,中間以(.)分隔

(1)header(頭信息)

由兩部分組成,令牌類型(即:JWT)、散列算法(HMAC、RSASSA、RSASSA-PSS等)

(2)Payload(有效載荷)

JWT的第二部分是payload,其中包含claims。claims是關于實體(常用的是用戶信息)和其他數據的聲明,claims有三種類型: registered, public, and private claims。

Registered claims: 這些是一組預定義的claims,非強制性的,但是推薦使用, iss(發行人), exp(到期時間), sub(主題), aud(觀眾)等;

Public claims: 自定義claims,注意不要和JWT注冊表中屬性沖突

Private claims: 這些是自定義的claims,用于在同意使用這些claims的各方之間共享信息,它們既不是Registered claims,也不是Public claims。

(3)Signature

要創建簽名部分,必須采用編碼的Header,編碼的Payload,秘鑰,Header中指定的算法,并對其進行簽名。

JWT使用流程:
.NET Core WebAPI集成JWT,實現身份驗證

JWT在.NET Core項目中的具體用法:

(1)在ConfigureServices方法中添加JWT相關代碼:
.NET Core WebAPI集成JWT,實現身份驗證

(2)在Configure方法中添加JWT代碼:

.NET Core WebAPI集成JWT,實現身份驗證

(3)創建一個JWT服務類:
.NET Core WebAPI集成JWT,實現身份驗證

(4)在接口類或方法上標記身份驗證:

.NET Core WebAPI集成JWT,實現身份驗證

到此為止,JWT的基本用法就結束,非常簡單和方便,接下來我們用postman測試一下JWT是否生效:

(1)當我們在不登錄的情況下,訪問接口看看是什么現象:

.NET Core WebAPI集成JWT,實現身份驗證

我們發現接口返回提示:401 Unauthorized

(2)我們先調用登錄接口,先計算得到token,然后再來請求試試:
.NET Core WebAPI集成JWT,實現身份驗證

登錄成功后,接口返回了token值
.NET Core WebAPI集成JWT,實現身份驗證

(3)將token復制粘貼到下方,請求業務接口,成功調用:

.NET Core WebAPI集成JWT,實現身份驗證

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盈江县| 泰来县| 新余市| 察隅县| 姜堰市| 蕉岭县| 堆龙德庆县| 张家川| 聂拉木县| 高清| 旅游| 阆中市| 湘西| 武平县| 怀安县| 西乡县| 邵武市| 营山县| 东港市| 醴陵市| 奎屯市| 会昌县| 合阳县| 密山市| 襄樊市| 乐业县| 玉溪市| 鄯善县| 西青区| 大埔区| 华阴市| 桑日县| 犍为县| 黔西县| 广宁县| 西畴县| 淄博市| 土默特右旗| 临城县| 阳东县| 青龙|