System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于应用程序,具体涉及一种无感刷新访问令牌的方法、系统、终端及存储介质。
技术介绍
1、在前端项目中,为了维持用户会话的连续性和用户体验的流畅性,需要依赖token来验证用户身份和授权访问。然而,token因其设计特性而具有有效期限制,一旦过期,用户将无法继续享受服务的某些功能。
2、为了避免用户服务中断,目前一些前端采用令牌刷新技术,例如客户端在接收到服务端返回的访问令牌失效的提示后,向服务端申请新的访问令牌。
3、这种方式具有滞后性,在申请新的访问令牌期间,请求处于等待状态,无法得到处理。如何缩短或消除等待时间,是提升用户体验的关键。
技术实现思路
1、针对现有技术的上述不足,本专利技术提供一种无感刷新访问令牌的方法、系统、终端及存储介质,以解决上述技术问题。
2、第一方面,本专利技术提供一种无感刷新访问令牌的方法,包括:
3、获取待发送请求的目标服务端,并获取目标服务端的前次请求时间;
4、基于所述前次请求时间和当前时刻计算请求的间隔时间,并基于所述间隔时间是否超过设定的时间阈值判断待发送请求与前次请求是否属于同一业务;
5、若所述待发送请求与前次请求属于同一业务,则获取访问令牌的剩余有效期,若所述剩余有效期低于所述时间阈值则向目标服务端发送令牌刷新请求;
6、若所述待发送请求与前次请求不属于同一业务,则不支持访问令牌刷新服务。
7、在一个可选的实施方式中,获取待发送请求
8、截取待发送请求,并从所述待发送请求中提取目标服务端;
9、调用访问令牌执行所述待发送请求,若所述访问令牌失效则将所述待发送请求缓存至任务队列;
10、从历史访问记录中获取对所述目标服务端的访问记录,并从所述访问记录中提取距当前时刻最近的前次请求时间。
11、在一个可选的实施方式中,基于所述前次请求时间和当前时刻计算请求间隔时间,并基于所述间隔时间是否超过设定的时间阈值判断待发送请求与前次请求是否属于同一业务,包括:
12、计算当前时刻与前次请求时间的时间差,将所述时间差记为间隔时间;
13、判断所述间隔时间是否超过所述时间阈值:
14、若是,则判定所述待发送请求与前次请求不属于同一业务;
15、若否,则判定所述待发送请求与前次请求属于同一业务。
16、在一个可选的实施方式中,所述时间阈值的设置方法包括:
17、收集历史访问记录,并从历史访问记录中的访问数据提取服务端地址和访问时间;
18、将服务端地址按访问时间先后进行排序,得到访问序列;
19、将访问序列划分为多个序列段,所述序列段中仅包含一个服务端地址;
20、统计各序列段的相邻元素的访问时间差,并筛选出最大访问时间差,将最大访问时间差设置为所述时间阈值。
21、在一个可选的实施方式中,若所述待发送请求与前次请求属于同一业务,则获取访问令牌的剩余有效期,若所述剩余有效期低于所述请求间隔时间则在处理所述待发送请求的同时向目标服务端发送令牌刷新请求,包括:
22、获取访问令牌的保存时间以及访问令牌的有效期,基于所述有效期和所述保存时间计算剩余有效期;
23、若所述剩余有效期为负数,确认所述访问令牌失效,利用预先存储的验证令牌生成令牌刷新请求,并将所述令牌刷新请求发送至目标服务端以获取新访问令牌,基于所述新访问令牌执行所述待发送请求;
24、若所述剩余有效期为正数,且所述剩余有效期不低于所述时间阈值,则基于所述访问令牌执行所述待发送请求;
25、若所述剩余有效期为正数,且所述剩余有效期低于所述时间阈值,则利用预先存储的验证令牌生成令牌刷新请求,以基于所述令牌刷新请求获取目标服务端的新访问令牌。
26、在一个可选的实施方式中,所述方法还包括:
27、服务端接收到令牌刷新请求,从所述令牌刷新请求中提取验证令牌,所述验证令牌为用户账户的哈希值;
28、预先为将用户账户的哈希值保存至验证列表,判断所述验证列表中是否存在与所述验证令牌一致的哈希值:
29、若是,则生成新访问令牌,并将新访问令牌返回至发送所述令牌刷新请求的客户端;
30、若否,则返回令牌刷新失败的提示信息。
31、在一个可选的实施方式中,若所述待发送请求与前次请求不属于同一业务,则不支持访问令牌刷新服务,包括:
32、从所述任务队列中提取待执行任务,基于所述待执行任务跳转至登录界面。
33、第二方面,本专利技术提供一种无感刷新访问令牌的系统,包括:
34、请求监控模块,用于获取待发送请求的目标服务端,并获取目标服务端的前次请求时间;
35、关联分析模块,用于基于所述前次请求时间和当前时刻计算请求的间隔时间,并基于所述间隔时间是否超过设定的时间阈值判断待发送请求与前次请求是否属于同一业务;
36、令牌刷新模块,用于若所述待发送请求与前次请求属于同一业务,则获取访问令牌的剩余有效期,若所述剩余有效期低于所述时间阈值则向目标服务端发送令牌刷新请求;
37、登录跳转模块,用于若所述待发送请求与前次请求不属于同一业务,则不支持访问令牌刷新服务。
38、第三方面,提供一种终端,包括:
39、存储器,用于存储无感刷新访问令牌的程序;
40、处理器,用于执行所述无感刷新访问令牌的程序时实现如第一方面提供的无感刷新访问令牌的方法的步骤。
41、第四方面,提供了一种计算机可读存储介质,存储介质上存储有无感刷新访问令牌的程序,无感刷新访问令牌的程序被处理器执行时实现如第一方面提供的无感刷新访问令牌的方法的步骤。
42、本专利技术的有益效果在于,本专利技术提供的无感刷新访问令牌的方法、系统、终端及存储介质,通过监控访问令牌的剩余有效期,并监控请求间隔时间,进而基于请求间隔时间和剩余有效期判断是否需要提前刷新访问令牌,这种提前刷新访问令牌的方式不会造成请求长时间等待,进一步提升了用户使用体验。
43、此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。
本文档来自技高网...【技术保护点】
1.一种无感刷新访问令牌的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,获取待发送请求的目标服务端,并获取目标服务端的前次请求时间,包括:
3.根据权利要求1所述的方法,其特征在于,基于所述前次请求时间和当前时刻计算请求间隔时间,并基于所述间隔时间是否超过设定的时间阈值判断待发送请求与前次请求是否属于同一业务,包括:
4.根据权利要求1所述的方法,其特征在于,所述时间阈值的设置方法包括:
5.根据权利要求1所述的方法,其特征在于,若所述待发送请求与前次请求属于同一业务,则获取访问令牌的剩余有效期,若所述剩余有效期低于所述请求间隔时间则在处理所述待发送请求的同时向目标服务端发送令牌刷新请求,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求2所述的方法,其特征在于,若所述待发送请求与前次请求不属于同一业务,则不支持访问令牌刷新服务,包括:
8.一种无感刷新访问令牌的系统,其特征在于,包括:
9.一种终端,其特征在于,包括:
< ...【技术特征摘要】
1.一种无感刷新访问令牌的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,获取待发送请求的目标服务端,并获取目标服务端的前次请求时间,包括:
3.根据权利要求1所述的方法,其特征在于,基于所述前次请求时间和当前时刻计算请求间隔时间,并基于所述间隔时间是否超过设定的时间阈值判断待发送请求与前次请求是否属于同一业务,包括:
4.根据权利要求1所述的方法,其特征在于,所述时间阈值的设置方法包括:
5.根据权利要求1所述的方法,其特征在于,若所述待发送请求与前次请求属于同一业务,则获取访问令牌的剩余有效期,若所述剩余有效期低于所述请求间隔...
【专利技术属性】
技术研发人员:王文利,修志远,王茂帅,李洪生,
申请(专利权)人:山东浪潮超高清视频产业有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。