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

令牌处理方法、装置、计算机设备、存储介质与流程

2022-04-30 10:38:52 来源:中国专利 TAG:


1.本公开涉及数据处理技术领域,特别是涉及一种令牌处理方法、装置、计算机设备、存储介质。


背景技术:

2.token是后端服务器生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,后端服务器生成一个token(令牌),将此token返回给客户端,后端服务器利用token验证请求权限。
3.但是,目前在客户端和后端服务器的请求权限的过程中,在调用接口时客户端携带了已经失效的token,等到后端服务器判断失效后再进行刷新token,刷新token完成再次发起接口请求,浪费了接口的请求资源以及处理时间,从而影响客户端和后端服务器之间的请求权限的效率。


技术实现要素:

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.所述队列创建模块,用于在存在多个令牌刷新请求的情况下,建立阻塞队列,所述阻塞队列中包括依次排列的多个令牌刷新请求;
44.所述请求获取模块,用于获取位于所述阻塞队列中头部的令牌刷新请求,通过头部的令牌刷新请求得到第二令牌;
45.所述请求放入模块,用于在所述第二令牌有效性校验失败的情况下,将所述头部的令牌刷新请求放入所述阻塞队列中尾部;
46.所述重复执行模块,用于重复执行上述各模块的功能,直至所述第二令牌有效性校验成功。
47.第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
48.第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
49.第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
50.上述各实施例中,客户端通过接收后端服务器发送过来的令牌和对应的令牌信息,并通过该令牌信息在客户端本地进行预校验令牌的有效性,当本地验证令牌成功时,能够通过验证成功的令牌与后端服务器进行请求权限,因为已经在客户端进行预校验该令牌是否有效,所以不会出现客户端使用失效的令牌进行请求权限的问题,避免了在调用接口时客户端携带了已经失效的令牌,提升客户端和后端服务器之间请求权限的效率。并且在客户端预校验通过时,与后端服务器进行请求权限时,后端服务器会再次进行判断该令牌的有效性,在校验失败的情况下,输出错误码。在接收到错误码的情况下,可以判断是否存在正在进行的令牌刷新请求,根据判断结果更改令牌刷新状态,并根据令牌刷新状态确定所述令牌是否刷新成功。能够及时的确定此时令牌是否刷新成功,若刷新成功,则继续执行上述操作,直至后端服务器校验令牌通过。能够提高客户端和后端服务器确定令牌是否刷新的速度,进一步的提升客户端和后端服务器之间请求权限的效率。
附图说明
51.为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1为一个实施例中令牌处理方法的应用环境示意图;
53.图2为一个实施例中令牌处理方法的流程示意图;
54.图3为一个实施例中s26步骤的流程示意图;
55.图4为一个实施例中预校验失败步骤的流程示意图;
56.图5为一个实施例中存在多个令牌刷新请求步骤的流程示意图;
57.图6a为另一个实施例中令牌处理方法一部分的流程示意图;
58.图6b为另一个实施例中令牌处理方法另一部分的流程示意图;
59.图7为一个实施例中令牌处理装置的结构示意框图;
60.图8为一个实施例中计算机设备的内部结构示意图。
具体实施方式
61.为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
62.需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
63.在本实施例中的令牌可以是token。
64.本公开实施例提供的令牌处理方法,可以应用于如图1所示的应用环境中。其中,客户端102通过网络与后端服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在后端服务器104上,也可以放在云上或其他网络服务器上。后端服务器104生成令牌并将令牌和对应的令牌信息发送至客户端102。客户端102接收令牌和对应的令牌信息,并通过令牌信息预校验后端服务器104发送的令牌的有效性。在客户端102进行令牌的有效性预校验成功的情况下。客户端102根据所述令牌向后端服务器104进行请求权限。请求权限包括:通过后端服务器104进行所述令牌的有效性校验。在令牌的有效性校验成功的情况下,获取后端服务器104中的数据以及接口资源。在令牌的有效性校验失败的情况下,后端服务器104输出错误码至客户端102。客户端102在接收到错误码的情况下,首先判断后端服务器104中是否存在正在进行的令牌刷新请求。客户端102根据判断结果更改令牌刷新状态。客户端102可以根据令牌刷新状态确定令牌是否刷新成功。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。后端
服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
65.在一个实施例中,如图2所示,提供了一种令牌处理方法,可以以该方法应用于图1中的客户端102为例进行说明,包括以下步骤:
66.s22,接收令牌和对应的令牌信息,通过所述令牌信息预校验所述令牌的有效性。
67.其中,令牌信息通常可以是校验对应的令牌是否有效的数据或者校验对应的令牌是否有效的方法。预校验通常可以是在客户端进行校验令牌是否有效的一种方式。令牌的有效性通常是令牌失效的性质。在此步骤中,若令牌有效,则代表有效性预校验成功。若令牌失效,则代表有效性校验失败。
68.具体地,客户端接收后端服务器发送的令牌和对应的令牌信息。当客户端接收到令牌和对应的令牌信息后,可以通过令牌信息进预校验令牌的有效性。
69.s24,在所述令牌的有效性预校验成功的情况下,根据所述令牌进行请求权限,所述请求权限包括:通过后端服务器进行所述令牌的有效性校验,在所述令牌的有效性校验失败的情况下,输出错误码。
70.其中,请求权限通常可以是后端服务器对令牌进行有效性校验的方式。错误码通常可以是在令牌过期或者令牌失效时后端服务器输出的数据。通过错误码能够确定令牌过期或者令牌失效。
71.具体地,在令牌的有效性进行预校验成功的情况下,证明该令牌此时有效。客户端可以根据此时的令牌进行请求权限。请求权限可以包括:通过后端服务器进行预校验成功的令牌的有效性校验。后端服务器可以使用令牌信息进行令牌的有效性校验,在后端服务器进行令牌的有效性校验通过的情况下,后端服务器开放权限,此时客户端可以获取后端服务器中的资源接口数据,并展示在客户端。在后端服务器进行令牌的有效性校验未通过的情况下,输出错误码至客户端。
72.s26,在接收到错误码的情况下,判断是否存在正在进行的令牌刷新请求,根据判断结果更改令牌刷新状态。
73.其中,令牌刷新请求通常可以是使后端服务器生成令牌的请求或者信息。令牌刷新状态通常可以是确定令牌刷新请求是否执行完成的一种状态信息。
74.具体地,当客户端接收到错误码的情况下,可以证明此时的令牌未通过后端服务器的有效性校验,所以可以是客户端判断是否存在正在进行的令牌刷新请求,根据判断得到的结果更改令牌的刷新状态。也可以是后端服务器判断是否存在正在进行的令牌刷新请求,根据判断得到的结果更改令牌的刷新状态。
75.s28,根据所述令牌刷新状态确定所述令牌是否刷新成功。
76.具体地,令牌刷新状态可以包括完成、进行中、等状态。在令牌刷新状态为完成的情况下,可以确定后端服务器进行令牌刷新成功,此时可以将得到的新的令牌和对应的令牌信息发送至客户端,客户端再次执行上述步骤s22至s28,直至后端服务器对令牌的有效性校验通过。后端服务器对令牌有效性校验通过后,客户端获取后端服务器中的资源接口数据的请求可以开始执行。
77.在令牌刷新状态为进行中的情况下,证明存在令牌刷新请求,可以确定此时的令牌未刷新成功。需等待该令牌刷新请求执行后,后端服务器进行令牌刷新后,进而回到s26步骤,更改令牌刷新状态。
78.上述令牌处理方法中,客户端通过接收后端服务器发送过来的令牌和对应的令牌信息,并通过该令牌信息在客户端本地进行预校验令牌的有效性,当本地验证令牌成功时,能够通过验证成功的令牌与后端服务器进行请求权限,因为已经在客户端进行预校验该令牌是否有效,所以不会出现客户端使用失效的令牌进行请求权限的问题,避免了在调用接口时客户端携带了已经失效的令牌,提升客户端和后端服务器之间请求权限的效率。并且在客户端预校验通过时,与后端服务器进行请求权限时,后端服务器会再次进行判断该令牌的有效性,在校验失败的情况下,输出错误码。在接收到错误码的情况下,可以判断是否存在正在进行的令牌刷新请求,根据判断结果更改令牌刷新状态,并根据令牌刷新状态确定所述令牌是否刷新成功。能够及时的确定此时的令牌是否刷新成功,若刷新成功,则继续执行上述操作,直至后端服务器校验令牌通过。能够提高客户端和后端服务器确定令牌是否刷新的速度,进一步的提升客户端和后端服务器之间请求权限的效率。
79.在一个实施例中,所述令牌信息包括:令牌过期算法、令牌有效时间、预设的令牌校验数据;所述通过所述令牌信息预校验所述令牌的有效性,包括:
80.利用所述令牌过期算法、令牌有效时间、预设的令牌校验数据中至少一项判断所述令牌的有效性。
81.其中,令牌过期算法可以是对令牌进行有效性校验的一种算法。令牌有效时间也可以是对令牌进行有效性校验的一种的方式。预设的令牌校验数据通常是本领域技术人员根据实际应用场景预设的对令牌进行有效性校验的数据。
82.具体地,可以通过令牌过期算法、令牌有效时间、预设的令牌校验数据中任意一项判断令牌的有效性,在任一项验证令牌有效的情况下,证明令牌的有效性预校验通过。可以通过令牌过期算法、令牌有效时间判断所述令牌的有效性,在通过令牌过期算法、令牌有效时间均验证令牌有效的情况下,证明令牌的有效性预校验通过。可以通过令牌有效时间、预设的令牌校验数据判断所述令牌的有效性,在通过令牌有效时间、预设的令牌校验数据均验证令牌有效的情况下,证明令牌的有效性预校验通过。还可以通过令牌过期算法、预设的令牌校验数据判断所述令牌的有效性,在通过令牌过期算法、预设的令牌校验数据均验证令牌有效的情况下,证明令牌的有效性预校验通过。最后还可以令牌过期算法、令牌有效时间、预设的令牌校验数据进行预校验令牌的有效性,在上述三项均验证通过的情况下,证明令牌的有效性预校验通过。
83.在一些示例性的实施方式中,可以通过拦截器判断令牌的有效性。拦截器可以包括:vue-resource拦截器、axios拦截器、php拦截器等。还可以通过json web token(简称jwt)判断令牌是否过期。
84.在本实施例中,通过令牌过期算法、令牌有效时间、预设的令牌校验数据中至少一项判断所述令牌的有效性,能够提高判断令牌有效性的准确度,避免了判断此处失误判断有效性通过后,与后端服务器请求权限的过程中使用失效的令牌进行请求权限。
85.在一个实施例中,所述接收令牌和对应的令牌信息,之前还包括:
86.在所述令牌不存在的情况下,发送所述令牌刷新请求至后端服务器,以使所述后端服务器根据所述令牌刷新请求生成所述令牌;
87.所述后端服务器根据所述令牌,确定与所述令牌对应的令牌信息。
88.具体地,在客户端启动时,需要在本地判断是否存在令牌,当不存在令牌时,客户
端发送令牌刷新请求至后端服务器。后端服务器接收到令牌刷新请求时,后端服务器生成令牌。生成令牌后,本领域技术人员可以在后端服务器中设置与该令牌对应的令牌信息。后端服务器将生成的令牌和对应的令牌信息发送至客户端。且在客户端接收令牌和对应的令牌信息的过程中阻塞客户端获取后端服务器中资源接口数据的请求。当后端服务器进行令牌的有效性校验成功的情况下,客户端才能获取后端服务器中资源接口数据。
89.在本实施例中,在客户端和后端服务器请求权限之前,后端服务器可以先把令牌对应的令牌信息发送至客户端,然后客户端获取到令牌信息后能够在本地进行预校验令牌的有效性,提升客户端和后端服务器之间请求权限的效率。
90.在一个实施例中,如图3所示,s26,所述判断是否存在正在进行的令牌刷新请求,根据判断结果更改令牌刷新状态,包括:
91.s262,在未存在正在进行的所述令牌刷新请求的情况下,输出所述令牌刷新请求,将所述令牌刷新状态更改为进行中。
92.具体地,在客户端接收到错误码后,先进行判断是否存在正在进行的令牌刷新请求,若未存在正在进行的令牌刷新请求,则需要输出令牌刷新请求至后端服务器,后端服务器可以根据该输出的令牌刷新请求生成令牌,此时需要将令牌刷新状态更改为进行中,证明此时后端服务器接收到令牌刷新请求,但未根据令牌刷新请求生成新的令牌。
93.s264,在存在正在进行的所述令牌刷新请求的情况下,根据所述令牌刷新请求进行刷新所述令牌,所述令牌刷新后,将所述令牌刷新状态更改为完成。
94.具体地,判断是否存在正在进行的令牌刷新请求,若存在正在进行的令牌刷新请求,则等待一段时间,等待后端服务器根据该正在进行的令牌刷新请求生成令牌后,可以代表令牌刷新。令牌刷新后,可以将令牌刷新状态更改为完成。
95.在本实施例中,可以通过令牌刷新状态确定此时令牌是否刷新成功,而当令牌刷新后,可以通过完成的令牌刷新状态确定令牌已经刷新,进而可以重复上述步骤s22至s26再次验证刷新后的令牌的有效性,提高客户端和后端服务器之间请求权限的效率。
96.在一个实施例中,如图4所示,所述方法还包括:
97.s402,在所述令牌的有效性预校验失败的情况下,再次发送所述令牌刷新请求至所述后端服务器,以使后端服务器根据所述令牌刷新请求生成第一令牌并确定与所述第一令牌对应的第一令牌信息。
98.其中,第一令牌通常可以是通过令牌刷新请求生成的新的令牌,以便于与上述提及的令牌进行区分。
99.具体地,在客户端通过令牌信息对令牌的有效性进行预校验失败的情况下。客户端可以再次发送令牌刷新请求至后端服务器。而后端服务器在每次接收令牌刷新请求的情况下,后端服务器均可以根据该令牌刷新请求生成一个新的令牌,该新的令牌的可以为第一令牌。然后本领域技术人员可以在后端服务器中设置与第一令牌对应的第一令牌信息并存储至后端服务器中。
100.s404,将所述令牌以及对应的令牌信息更新为所述第一令牌和对应的第一令牌信息。
101.具体地,客户端中仅仅是接收到之前预校验失败的令牌和对应的令牌信息。所以后端服务器需要将第一令牌和对应的第一令牌信息发送至客户端。客户端接收到第一令牌
和对应的第一令牌信息后,可以将之前接收到令牌和对应的令牌信息更新为第一令牌和对应的第一令牌信息。
102.s406,再次通过所述第一令牌信息预校验所述第一令牌的有效性,直至第一令牌的有效性预校验成功。
103.具体地,客户端可以再次通过第一令牌信息预校验第一令牌的有效性,在校验失败的情况下,重复上述步骤,直至第一令牌的有效性预校验成功。
104.在本实施例中,在客户端本地预校验令牌的有效性失败的情况下,可以发送令牌刷新信息至后端服务器,后端服务器可以根据该令牌刷新信息生成新的令牌以及确定对应的新的令牌信息。将客户端的旧的令牌和对应的令牌信息替换为新的令牌和令牌信息能够保证该令牌信息和令牌及时更新,提高效率,减少客户端和后端服务器之间请求权限的错误。后续客户端可以进行预校验该新的令牌的有效性,直至预校验成功。能够避免了在调用接口时客户端携带了已经失效的令牌,提升客户端和后端服务器之间请求权限的效率。
105.在一个实施例中,如图5所示,所述方法还包括:
106.s502,在存在多个令牌刷新请求的情况下,建立阻塞队列,所述阻塞队列中包括依次排列的多个令牌刷新请求。
107.其中,阻塞队列通常可以是存储了依次排列的多个令牌刷新请求的队列。
108.具体地,当客户端处理多个并发的令牌刷新请求时。需要在后端服务器中建立阻塞队列。
109.s504,获取位于所述阻塞队列中头部的令牌刷新请求,通过头部的令牌刷新请求得到第二令牌。
110.其中,阻塞队列中头部通常可以是依次排列的多个令牌排名在前面的令牌,通常可以是排名第一的令牌。
111.具体地,当在客户端中建立阻塞队列时,客户端可以获取位于阻塞队列头部的令牌刷新请求,并将该令牌刷新请求发送至后端服务器。后端服务器根据该头部的令牌刷新请求得到一个新的令牌,该新的令牌通常可以称作第二令牌。
112.s506,在所述第二令牌有效性校验失败的情况下,将所述头部的令牌刷新请求放入所述阻塞队列中尾部。
113.其中,阻塞队列尾部通常可以是依次排列的多个令牌排名在后面的令牌,通常可以使排名倒数第一的令牌。
114.具体地,可以通过后端服务器对第二令牌进行有效性校验,但是后端服务器在对第二令牌进行有效性校验的条件通常是令牌的有效性预校验成功。所以客户端需要先对第二令牌进行有效性预校验。在客户端对第二令牌进行有效性预校验通过的情况下。通过后端服务器对第二令牌进行有效性校验,在第二令牌有效性校验失败的情况下,可以将从头部获取的令牌刷新请求放入阻塞队列的尾部。
115.s508,重复上述步骤,直至所述第二令牌有效性校验成功。
116.具体地,可以重复上述步骤s504至s506,直到第二令牌的有效性校验成功。当第二令牌的有效性校验成功时,客户端可以从后端服务器获取资源接口数据。
117.本实施例中,通过建立阻塞队列能够确保执行令牌刷新请求的过程中,始终只有一个令牌刷新请求存在,其他资源请求以及令牌刷新请求都处于阻塞状态,只有令牌刷新
后,并且有效性校验成功后,才能释放队列发起其他请求。而客户端只有存在令牌时才能正常运行,所以通过本实施例能够保证令牌验证成功,从而确保客户端正常运行。
118.在另一个实施例中,如图6a所示和图6b所示,在另一个实施例中,本公开还提供了一种令牌处理方法,包括以下步骤:
119.s602,在令牌不存在的情况下,发送所述令牌刷新请求至后端服务器,以使所述后端服务器根据所述令牌刷新请求生成所述令牌。
120.s604,后端服务器根据所述令牌,确定与所述令牌对应的令牌信息并发送令牌和对应的令牌信息。
121.s606,客户端接收令牌和对应的令牌信息,通过所述令牌信息预校验所述令牌的有效性。
122.s608,在所述令牌的有效性预校验成功的情况下,通过后端服务器进行所述令牌的有效性校验。
123.s610,后端服务器在进行令牌的有效性校验通过的情况下,后端服务器开放权限,客户端可以获取后端服务器中的资源接口数据。
124.s612,后端服务器在所述令牌的有效性校验失败的情况下,输出错误码。
125.s614,客户端在接收到错误码的情况下,判断是否存在正在进行的令牌刷新请求。
126.s616,在未存在正在进行的所述令牌刷新请求的情况下,输出所述令牌刷新请求,将所述令牌刷新状态更改为进行中。
127.s618,在存在正在进行的所述令牌刷新请求的情况下,根据所述令牌刷新请求进行刷新所述令牌,所述令牌刷新后,将所述令牌刷新状态更改为完成。
128.s620,客户端在所述令牌的有效性预校验失败的情况下,再次发送所述令牌刷新请求至所述后端服务器,以使后端服务器根据所述令牌刷新请求生成第一令牌并确定与所述第一令牌对应的第一令牌信息。
129.s622,客户端将所述令牌以及对应的令牌信息更新为所述第一令牌和对应的第一令牌信息。
130.s624,客户端再次通过所述第一令牌信息预校验所述第一令牌的有效性,直至第一令牌的有效性预校验成功。
131.s626,客户端在存在多个令牌刷新请求的情况下,建立阻塞队列,所述阻塞队列中包括依次排列的多个令牌刷新请求。
132.s628,获取位于所述阻塞队列中头部的令牌刷新请求,通过头部的令牌刷新请求得到第二令牌,校验第二令牌的有效性。
133.s630,在所述第二令牌有效性校验失败的情况下,将所述头部的令牌刷新请求放入所述阻塞队列中尾部,回到步骤s628。
134.s632,在所述第二令牌有效性校验成功的情况下,通过所述第二令牌获取后端服务器中的资源接口数据。
135.需要说明的是,本实施例的具体实施方式可参见上述各实施例,在此不进行重复赘述。
136.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有
明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
137.基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的令牌处理方法的令牌处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个令牌处理装置实施例中的具体限定可以参见上文中对于令牌处理方法的实施例,在此不再赘述。
138.在一个实施例中,如图7所示,提供了一种令牌处理装置700,包括:预校验模块702、权限请求模块704、状态更改模块706、结果确定模块708,其中:
139.预校验模块702,用于接收令牌和对应的令牌信息,通过所述令牌信息预校验所述令牌的有效性。
140.权限请求模块704,用于在所述令牌的有效性预校验成功的情况下,根据所述令牌进行请求权限,所述请求权限包括:通过后端服务器进行所述令牌的有效性校验,在所述令牌的有效性校验失败的情况下,输出错误码。
141.状态更改模块706,用于在接收到错误码的情况下,判断是否存在正在进行的令牌刷新请求,根据判断结果更改令牌刷新状态。
142.结果确定模块708,用于根据所述令牌刷新状态确定所述令牌是否刷新成功。
143.在所述装置的一个实施例中,所述令牌信息包括:令牌过期算法、令牌有效时间、预设的令牌校验数据;所述预校验模块702,还用于利用所述令牌过期算法、令牌有效时间、预设的令牌校验数据中至少一项判断所述令牌的有效性。
144.在所述装置的一个实施例中,所述装置还包括:信息发送模块,用于在所述令牌不存在的情况下,发送所述令牌刷新请求至后端服务器,以使所述后端服务器根据所述令牌刷新请求生成所述令牌;及
145.使所述后端服务器根据所述令牌,确定与所述令牌对应的令牌信息。
146.在所述装置的一个实施例中,所述状态更改模块706包括:第一更改模块、第二更改模块;
147.所述第一更改模块,用于在未存在正在进行的所述令牌刷新请求的情况下,输出所述令牌刷新请求,将所述令牌刷新状态更改为进行中;
148.所述第二更改模块,用于在存在正在进行的所述令牌刷新请求的情况下,根据所述令牌刷新请求进行刷新所述令牌,所述令牌刷新后,将所述令牌刷新状态更改为完成。
149.在所述装置的一个实施例中,所述装置还包括:重复请求模块、信息更新模块、二次预校验模块;
150.所述重复请求模块,用于在所述令牌的有效性预校验失败的情况下,再次发送所述令牌刷新请求至所述后端服务器,以使后端服务器根据所述令牌刷新请求生成第一令牌并确定与所述第一令牌对应的第一令牌信息;
151.所述信息更新模块,用于将所述令牌以及对应的令牌信息更新为所述第一令牌和对应的第一令牌信息;
memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
165.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
166.以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献