這篇文章將為大家詳細(xì)講解有關(guān)JWT認(rèn)證授權(quán)如何在ASP.NET Core項(xiàng)目中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
Jwt優(yōu)勢與劣勢
優(yōu)勢
1、 無狀態(tài)
token 存儲(chǔ)身份驗(yàn)證所有信息 , 服務(wù)端不需要保存用戶身份驗(yàn)證信息, 減少服務(wù)端壓力 , 服務(wù)端更容易水平擴(kuò)展, 由于無狀態(tài), 又會(huì)導(dǎo)致它較大缺點(diǎn) , 很難注銷
2、 支持跨域訪問
Cookie是不允許垮域訪問的,token支持
3、 跨語言
基于標(biāo)準(zhǔn)化的 JSON Web Token (JWT) , 不依賴特定某一個(gè)語言 , 例如生成的Token可以對多種語言使用(Net , Java , PHP …)
劣勢
1、Token有效性問題
后臺(tái)很難注銷已經(jīng)發(fā)布的Token , 通常需要借助第三方儲(chǔ)存(數(shù)據(jù)庫/緩存) 實(shí)現(xiàn)注銷, 這樣就會(huì)失去JWT較大的優(yōu)勢
2、占帶寬
Token長度(取決存放內(nèi)容) 比session_id大 , 每次請求多消耗帶寬 , token只存必要信息 , 避免token過長
3、需要實(shí)現(xiàn)續(xù)簽
cookies – session 通常是框架已經(jīng)實(shí)現(xiàn)續(xù)簽功能, 每次訪問把過期時(shí)間更新, JWT需要自己實(shí)現(xiàn), 參考OAuth3刷新Token機(jī)制實(shí)現(xiàn)刷新Token
4、消耗更多CPU
每次請求需要對內(nèi)容解密和驗(yàn)證簽名這兩步操作,典型用時(shí)間換空間
只能根據(jù)自身使用場景決定使用哪一種身份驗(yàn)證方案 , 沒有一種方案是通用的,完美的
.NET Core集成JWT認(rèn)證授權(quán)服務(wù)
1、認(rèn)證服務(wù)API:認(rèn)證用戶,并發(fā)布Token
1、引入nuget包,System.IdentityModel.Tokens.Jwt
2、創(chuàng)建生成Token的服務(wù),建議使用面向接口和實(shí)現(xiàn)編程,方便服務(wù)注入容器ServicesCollection(涉及DI和IOC概念)
3、創(chuàng)建接口
namespace JWTS.Services { public interface IJWTService { /// <summary> /// 根據(jù)驗(yàn)證通過后的用戶以及角色生成Token,以達(dá)到角色控制的作用 /// </summary> /// <param name="userName"></param> /// <param name="role"></param> /// <returns></returns> string GetToken(string userName,string role); } }
網(wǎng)頁題目:JWT認(rèn)證授權(quán)如何在ASP.NETCore項(xiàng)目中使用-創(chuàng)新互聯(lián)
文章起源:http://www.rwnh.cn/article36/dohcsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、搜索引擎優(yōu)化、App設(shè)計(jì)、外貿(mào)建站、商城網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容