一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种token过期自动续签认证方法、装置、设备和介质与流程

2022-12-07 16:47:24 来源:中国专利 TAG:

1.本发明涉及计算机技术领域,特别涉及一种token过期自动续签认证方法、装置、设备和介质。


背景技术:

2.token是服务端生成的一串字符串,以作web客户端进行请求的一个令牌,当第一次登录后,服务器生成一个token便将此token返回给web客户端,以后web客户端请求只需带上这个token前来请求数据即可。
3.使用token的目的:token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
4.但是token使用是有一个过期时间,如果在web客户端使用过程中,token刚好过期,这个时候请求会报异常,我们需要对这个异常重新处理。如果是多接口并发请求,这个处理会非常麻烦。
5.也有使用前置token是否过期判断,过期的话重新获取新的token,再进行业务接口数据请求,这里的问题是每个请求都需要进行token判断,非常的繁琐;而且前置判断,会导致数据获取链变长,稳定性变弱,不利web客户端呈现。


技术实现要素:

6.本发明要解决的技术问题,在于提供一种token过期自动续签认证方法、装置、设备和介质,可以减少频繁判断token是否过期,减少请求量。
7.第一方面,本发明提供了一种token过期自动续签认证方法,包括:步骤1、将web客户端的通信模块使用es6 promise技术封装;步骤2、web客户端通信模块发起请求时候,携带web客户端缓存的token进行数据请求,此时请求的promise实例 状态是pending;服务端需验证请求所携带的token状态,并且返回状态码;步骤3、web客户端通信模获取状态码,若状态码表示正常状态,则直接将数据返回web客户端渲染层;若状态码表示异常状态,则拦截异常接口,并返回一个的promise实例,该promise实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending;最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存的token,使用最新token和拦截的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层。
8.进一步地,所述若状态码表示异常状态,则拦截异常接口,并返回一个的promise实例,该promise实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending;最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存的token,使用最新token和
拦截的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层进一步具体为:若状态码表示异常状态,拦截首个异常接口,返回一个新的promise实例,该promise实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending;拦截其他异常请求,返回新的promise实例,收集当前请求信息和promise实例的resolve函数,存到一个全局数组中;最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存的token;使用最新token和拦截的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层;遍历收集异常请求的全局数组,使用最新token和数组项请求信息,重新发起请求,成功后,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层;清空异常请求的全局数组。
9.第二方面,本发明提供了一种token过期自动续签认证装置,包括:封装模块,将web客户端的通信模块使用es6 promise技术封装;请求模块,web客户端通信模块发起请求时候,携带web客户端缓存的token进行数据请求,此时请求的promise实例 状态是pending;服务端需验证请求所携带的token状态,并且返回状态码;验证处理模块,web客户端通信模获取状态码,若状态码表示正常状态,则直接将数据返回web客户端渲染层;若状态码表示异常状态,则拦截异常接口,并返回一个的promise实例,该promise实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending;最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存的token,使用最新token和拦截的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层。
10.进一步地,所述若状态码表示异常状态,则拦截异常接口,并返回一个的promise实例,该promise实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending;最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存的token,使用最新token和拦截的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层进一步具体为:若状态码表示异常状态,拦截首个异常接口,返回一个新的promise实例,该promise实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending;拦截其他异常请求,返回新的promise实例,收集当前请求信息和promise实例的resolve函数,存到一个全局数组中;最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存的token;使用最新token和拦截
的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层;遍历收集异常请求的全局数组,使用最新token和数组项请求信息,重新发起请求,成功后,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层;清空异常请求的全局数组。
11.第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
12.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
13.本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本技术实施例提供的一种token过期自动续签认证方法、装置、设备和介质,可以减少频繁判断token是否过期,减少请求量。并且可以将过期token自动续签,不需要频繁处理接口异常;便于用户使用,可以使得web客户端的显示不会卡顿。
14.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
15.下面参照附图结合实施例对本发明作进一步的说明。
16.图1为本发明的流程示意图;图2为本发明实施例一中方法中的流程图;图3为本发明实施例二中装置的结构示意图。
具体实施方式
17.如图1所述,本技术实施例中的技术方案,总体思路如下:1、web客户端通信模块使用es6 promise 技术封装,promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。
18.resolve函数的作用是,将promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved/fulfilled)reject函数的作用是,将promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected);2、web客户端通信模块发起请求时候,携带web客户端缓存(localstorage、indexeddb、cookies等)里存储的token进行数据请求,此时请求的promise实例 状态是 pending(进行中);3、服务端需验证请求所携带的token情况(正常、异常、为空、过期),并且返回状态码(正常或异常);4、web客户端通信模块拦截返回相关数据,根据状态码判断后续流程(正常状态直接将数据返回web客户端渲染层);
5、token 返回状态码异常(以下技术描述默认为多接口并发请求,单请求包含其中);a、拦截首个异常接口,返回一个新的promise实例,这个实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending(进行中);b、拦截其他异常请求,返回新的promise实例,收集当前请求信息和promise实例的resolve函数,存到一个全局数组中;c、最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存(localstorage、indexeddb、cookies等)里存储的token;d、使用最新token和拦截的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled。返回请求结果给web客户端渲染层;e、遍历收集异常请求的全局数组,使用最新token和数组项请求信息,重新发起请求,成功后,使用resolve函数改变对应的promise实例状态为fulfilled。返回请求结果给web客户端渲染层。
19.实施例一如图2所示,本实施例提供一种token过期自动续签认证方法,包括:步骤1、将web客户端的通信模块使用es6 promise技术封装;步骤2、web客户端通信模块发起请求时候,携带web客户端缓存的token进行数据请求,此时请求的promise实例 状态是pending;服务端需验证请求所携带的token状态,并且返回状态码;步骤3、web客户端通信模获取状态码,若状态码表示正常状态,则直接将数据返回web客户端渲染层;若状态码表示异常状态,拦截首个异常接口,返回一个新的promise实例,该promise实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending;拦截其他异常请求,返回新的promise实例,收集当前请求信息和promise实例的resolve函数,存到一个全局数组中;最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存的token;使用最新token和拦截的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层;遍历收集异常请求的全局数组,使用最新token和数组项请求信息,重新发起请求,成功后,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层;清空异常请求的全局数组。
20.基于同一发明构思,本技术还提供了与实施例一中的方法对应的装置,详见实施例二。
21.实施例二如图3所示,在本实施例中提供了第二方面,本发明提供了一种token过期自动续签认证装置,包括:封装模块,将web客户端的通信模块使用es6 promise技术封装;
请求模块,web客户端通信模块发起请求时候,携带web客户端缓存的token进行数据请求,此时请求的promise实例 状态是pending;服务端需验证请求所携带的token状态,并且返回状态码;验证处理模块,web客户端通信模获取状态码,若状态码表示正常状态,则直接将数据返回web客户端渲染层;若状态码表示异常状态,拦截首个异常接口,返回一个新的promise实例,该promise实例是一个开启重新续签token请求,此时获取token请求的promise实例状态是 pending;拦截其他异常请求,返回新的promise实例,收集当前请求信息和promise实例的resolve函数,存到一个全局数组中;最新token请求完成,使用resolve函数改变token请求的promise实例状态为fulfilled,并且返回最新token,更新保存web客户端缓存的token;使用最新token和拦截的首个异常接口请求信息,重新发起请求,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层;遍历收集异常请求的全局数组,使用最新token和数组项请求信息,重新发起请求,成功后,使用resolve函数改变对应的promise实例状态为fulfilled;返回请求结果给web客户端渲染层;清空异常请求的全局数组。
22.由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
23.基于同一发明构思,本技术提供了实施例一对应的电子设备实施例,详见实施例三。
24.实施例三本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
25.由于本实施例所介绍的电子设备为实施本技术实施例一中方法所采用的设备,故而基于本技术实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本技术实施例中的方法不再详细介绍。只要本领域所属技术人员实施本技术实施例中的方法所采用的设备,都属于本技术所欲保护的范围。
26.基于同一发明构思,本技术提供了实施例一对应的存储介质,详见实施例四。
27.实施例四本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
28.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
29.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
30.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
31.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
32.虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献