ASP.NET?Core?實現(xiàn)自動刷新JWT?Token
前言:
為了安全性考慮,我們可以設(shè)置JWT Token較短的過期時間,但是這樣會導(dǎo)致客戶端頻繁地跳到登錄界面,用戶體驗不好。
正常解決辦法是增加??refresh_token?
?,客戶端使用refresh_token去主動刷新JWT Token。
這里介紹一種變通的方式,自動刷新JWT Token。
原理
我們讀取每個請求的??Authorization?
?頭,獲得當(dāng)前請求的JWT Token。
檢查當(dāng)前token的過期時間,如果在30分鐘以內(nèi),那么我們就生成一個具有新過期時間的JWT Token,并通過??X-Refresh-Token?
?頭返回。
客戶端檢查到??X-Refresh-Token?
?頭,就將保存的JWT Token替換掉,下次發(fā)送請求就是用最新的token了。
實現(xiàn)
創(chuàng)建一個Middleware
,它的作用是檢查JWT Token過期時間并生成新token返回:
public async Task InvokeAsync(HttpContext context) { JwtSecurityToken token = null; string authorization = context.Request.Headers["Authorization"]; if (!string.IsNullOrEmpty(authorization) && authorization.StartsWith("Bearer ")) token = new JwtSecurityTokenHandler(). ReadJwtToken(authorization.Substring("Bearer ".Length)); //刷新Token if (token != null && token.ValidTo > DateTime.UtcNow && token.ValidTo.AddMinutes(-30) <= DateTime.UtcNow) { context.Response.Headers.Add("X-Refresh-Token", await RefreshTokenAsync(token)); } await _next(context); }
結(jié)論
當(dāng)然,推薦大家盡量使用??refresh_token?
?的方式,畢竟這樣安全性會更高一些。
到此這篇關(guān)于ASP.NET Core 實現(xiàn)自動刷新JWT Token的文章就介紹到這了,更多相關(guān)ASP.NET Core 自動刷新 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ASP.net(C#)從其他網(wǎng)站抓取內(nèi)容并截取有用信息的實現(xiàn)代碼
ASP.net(C#)從其他網(wǎng)站抓取內(nèi)容并截取有用信息的實現(xiàn)代碼,需要的朋友可以參考下。2011-09-09ASP.NET網(wǎng)站管理系統(tǒng)退出 清除瀏覽器緩存,Session的代碼
管理系統(tǒng)退出登陸后,將網(wǎng)址重新輸入后還會看到用戶登陸后的界面,為了解決這個問題,我采用了以下方法,需要的朋友可以參考下2012-05-05asp.net(c#)實現(xiàn)從sqlserver存取二進制圖片的代碼
有一個員工表Employee,需要保存員工照片(Photo)到數(shù)據(jù)庫(sql server)上。員工照片對應(yīng)的字段是varbinary(max),也就是要存成二進制文件類型(這和以前討巧地存圖片文件路徑就不相同了),默認可以為空。2011-09-09.net生成縮略圖及水印圖片時出現(xiàn)GDI+中發(fā)生一般性錯誤解決方法
這篇文章主要介紹了.net生成縮略圖及水印圖片時出現(xiàn)GDI+中發(fā)生一般性錯誤解決方法 ,需要的朋友可以參考下2014-11-11從請求管道深入剖析HttpModule的實現(xiàn)機制圖文介紹
想要了解底層的原理必須對請求處理過程和頁面的生命周期有點了解才方便您入門學(xué)習(xí)一下內(nèi)容,本文將詳細介紹2012-11-11使用正則Regex來移除網(wǎng)頁的EnableViewState實現(xiàn)思路及代碼
創(chuàng)建好網(wǎng)頁時,什么都沒有寫,但運行時會發(fā)現(xiàn)源程序(View Source),下面一段,此刻,也許你會想起,在網(wǎng)頁有一個屬性EnableViewState,在某些時候我們并不需要它,接下來將介紹如何移除它,感興趣的朋友可以了解下啊2013-01-01