子曰:工欲善其事,必先利其器
github:https://github.com/redAntCpp/CSharpTools
紧接上篇,上篇只是实现了token的生成以及解析,顺便提到了验证机制。但是在实际业务中,通常需要对token进行时效性验证。就像去看电影,电影票当天有效,必须在有效期内进行使用,否则就需要重新买票。
token时效验证
总体思路
第一步中,有个代码:
if (isAPIUser(UserName, PassWord))
{
//这里应该验证有效期,暂时没写,后续提供思路
return true;
}
这里应该加上时效验证。那么如何实现token的时效性验证呢,这里提供两个思路:
思路1
- 设置一个有效期,让客户端每次调用服务时,带上第一次获取token的时间戳(加密)。
- 服务端取到这个时间后,进行解密,然后加上有效期,对比当前服务器的时间,大于则有效,小于则失效,
在IsAuthorized加上这一段即可
string requestTime = httpContext.Request.Headers["rtime"]; //请求时间经过DESC签名,头文件
if (string.IsNullOrEmpty(requestTime))return false;
DateTime Requestdt = DateTime.Parse(Decrypt.RSADecrypt(PrivateKey,requestTime)).AddMinutes(int.Parse(TimeStamp));
DateTime Newdt = DateTime.Now

本文探讨了如何在实际业务中验证JWT(JSON Web Token)的时效性,提出了两种策略:一是客户端携带时间戳,二是服务端记录token生成时间。针对第二种策略的存储消耗问题,提出了使用SQLite进行本地存储的优化方案,详细阐述了其实现过程,并给出了相关代码示例。
最低0.47元/天 解锁文章
3018

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



