最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET?Core?實(shí)現(xiàn)自動(dòng)刷新JWT?Token

 更新時(shí)間:2022年04月12日 21:27:26   作者:My空格IO  
這篇文章主要介紹了ASP.NET?Core?實(shí)現(xiàn)自動(dòng)刷新JWT?Token,通過(guò)增加??refresh_token??,客戶端使用refresh_token去主動(dòng)刷新JWT?Token,下文具體操作過(guò)程需要的小伙伴可以參考一下

前言:

為了安全性考慮,我們可以設(shè)置JWT Token較短的過(guò)期時(shí)間,但是這樣會(huì)導(dǎo)致客戶端頻繁地跳到登錄界面,用戶體驗(yàn)不好。

正常解決辦法是增加??refresh_token??,客戶端使用refresh_token去主動(dòng)刷新JWT Token。

這里介紹一種變通的方式,自動(dòng)刷新JWT Token

原理

我們讀取每個(gè)請(qǐng)求的??Authorization??頭,獲得當(dāng)前請(qǐng)求的JWT Token。

檢查當(dāng)前token的過(guò)期時(shí)間,如果在30分鐘以內(nèi),那么我們就生成一個(gè)具有新過(guò)期時(shí)間的JWT Token,并通過(guò)??X-Refresh-Token??頭返回。

客戶端檢查到??X-Refresh-Token??頭,就將保存的JWT Token替換掉,下次發(fā)送請(qǐng)求就是用最新的token了。

實(shí)現(xiàn)

創(chuàng)建一個(gè)Middleware,它的作用是檢查JWT Token過(guò)期時(shí)間并生成新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??的方式,畢竟這樣安全性會(huì)更高一些。

到此這篇關(guān)于ASP.NET Core 實(shí)現(xiàn)自動(dòng)刷新JWT Token的文章就介紹到這了,更多相關(guān)ASP.NET Core 自動(dòng)刷新 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

平舆县| 郎溪县| 汤原县| 横峰县| 和顺县| 荔波县| 九台市| 淅川县| 辽宁省| 望奎县| 寿阳县| 灌云县| 克山县| 江永县| 荣成市| 湘潭县| 阳山县| 图木舒克市| 砀山县| 乐昌市| 大同县| 富阳市| 湄潭县| 隆子县| 大关县| 新平| 惠水县| 宁波市| 汉川市| 苏尼特右旗| 芦溪县| 安康市| 青田县| 濉溪县| 玉环县| 西盟| 贵州省| 嘉峪关市| 广东省| 磐石市| 苏州市|