最近看来很多网上都是思路,或者代码片段,非完整项目,自己在闲余时间做个demo,仅供参考。如有更好方案可以请分享给我。
其实就是自定义一个jwt中间件,中间件中实现大致如下:
#region 实现redis自动续期
var vUser = authManage.GetTockenInfo(token);
string sTokenExp = redisClient.Get("Token:" + vUser.UserId);
if (!string.IsNullOrWhiteSpace(sTokenExp))
{
//sTokenExp = sTokenExp.Replace("\\", "");
dynamic dyToken = JsonConvert.DeserializeObject(sTokenExp);
string sToken = token;
if (null != dyToken && null != dyToken.exp)
{
double dMinutes = (Convert.ToDateTime(dyToken.exp) - DateTime.Now).TotalMinutes;
if (dMinutes <= 1)
{
sToken = authManage.GenerateJwtToken(vUser);
redisClient.SetAsync("Token:" + vUser.UserId, "{\"tockenStr\":'" + sToken + "',\"exp\":'" + DateTime.Now.AddSeconds(120) + "'}", 120);
}
}
token = sToken;
}
#endregion
话不多说上完整代码示例:https://download.youkuaiyun.com/download/hefeng_aspnet/19550963
本文介绍了一种使用JWT和Redis实现自动续期的方法。通过自定义中间件,在检测到令牌即将过期时自动更新并存储新的令牌。这种方式能够简化身份验证流程,提升用户体验。
806

被折叠的 条评论
为什么被折叠?



