一种访问令牌的生成方法和一种访问令牌的识别方法与流程



1.本发明涉及通信安全技术领域,特别是涉及一种访问令牌的生成方法和一种访问令牌的识别方法。


背景技术:



2.原生的http(hyper text transfer protocol,超文本传输协议)请求是一种无状态的网络请求协议,因此服务器无法根据用户的请求来判断当前请求的用户身份及登录的状态。
3.为了能够基于http请求实现用户登入,目前采用的方式主要包含服务器端session以及基于令牌方式的jwt(json web token)实现。其中,jwt的方式由于不需要在服务器端存储用户的信息,具有良好的分布式特性及无状态特性,因此在高并发等场景下被广泛使用。
4.但目前jwt的方式由于是采用json格式加base64编码结合,因此存储空间较大,需要占用比较多的网络传输流量。在要求高响应及低带宽,如物联网的场景下,并不太实用。


技术实现要素:



5.鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种访问令牌的生成方法和一种访问令牌的识别方法,包括:
6.一种访问令牌的生成方法,所述方法包括:
7.接收客户端发送的用户信息;
8.对所述用户信息和针对令牌的时间信息进行bencoding b编码,生成第一目标访问令牌;
9.向所述客户端返回所述第一目标访问令牌。
10.可选地,所述对所述用户信息和针对令牌的时间信息进行bencoding b编码,生成第一目标访问令牌,包括:
11.生成第一目标头部部分;
12.对所述用户信息和所述时间信息进行b编码,生成第一目标负载部分;
13.根据所述第一目标头部部分和所述第一目标负载部分,生成第一目标签名字符串,并对所述第一目标签名字符串进行b编码,生成第一目标签名部分;
14.根据所述第一目标头部部分、所述第一目标负载部分和所述第一目标签名部分生成第一目标访问令牌。
15.可选地,所述对所述用户信息和所述时间信息进行b编码,生成第一目标负载部分,包括:
16.对所述用户信息进行b编码,生成第一负载部分;
17.将所述时间信息以大端序排列为32位的一第一目标整数,并利用base64对所述第一目标整数进行编码,生成第一字符串;
18.去除所述第一字符串的最后两个字节,得到第二字符串;
19.对所述第二字符串进行b编码,生成第二负载部分;
20.根据所述第一负载部分和所述第二负载部分,得到所述第一目标负载部分。
21.可选地,所述用户信息包括一标记用户唯一性的整数字符串和其他信息,所述对所述用户信息进行b编码,生成第一负载部分,包括:
22.对所述其他信息进行b编码,生成第三字符串;
23.将所述整数字符串以大端序排列为64位的一第二目标整数,并对所述第二目标整数进行base64编码,生成第四字符串;
24.去除所述第四字符串的最后一个字节,并进行b编码,以生成第五字符串;
25.根据所述第三字符串和所述第五字符串,生成所述第一负载部分。
26.可选地,所述根据所述第一目标头部部分和所述第一目标负载部分,生成第一目标签名字符串,包括:
27.将所述第一目标头部部分和所述第一目标负载部分拼接为第六字符串;
28.采用预设加密算法,对所述第六字符串进行签名,生成第七字符串;
29.对所述第七字符串进行base64编码,生成所述第一目标签名字符串。
30.本发明实施例还提供了一种访问令牌的识别方法,所述方法包括:
31.当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对所述第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;
32.根据所述第二目标头部部分、所述第二目标负载部分和所述第二目标签名部分进行校验;
33.当校验通过时,从所述第二目标负载部分获取对应的用户信息。
34.本发明实施例还提供了一种服务器,
35.所述服务器,用于接收客户端发送的用户信息;对所述用户信息进行bencoding b编码,以及对针对令牌的时间信息进行b编码,生成第一目标访问令牌;向所述客户端返回所述第一目标访问令牌;
36.所述服务器,还用于当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对所述第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;根据所述第二目标头部部分、所述第二目标负载部分和所述第二目标签名部分进行校验;当校验通过时,从所述第二目标负载部分获取对应的用户信息。
37.本发明实施例还提供了一种访问令牌的生成装置,所述装置包括:
38.接收模块,用于接收客户端发送的用户信息;
39.编码模块,用于对所述用户信息和针对令牌的时间信息进行bencoding b编码,生成第一目标访问令牌;
40.返回模块,用于向所述客户端返回所述第一目标访问令牌。
41.可选地,所述编码模块,包括:
42.头部生成子模块,用户生成第一目标头部部分;
43.负载生成子模块,用于对所述用户信息和所述时间信息进行b编码,生成第一目标
负载部分;
44.签名生成子模块,用于根据所述第一目标头部部分和所述第一目标负载部分,生成第一目标签名字符串,并对所述第一目标签名字符串进行b编码,生成第一目标签名部分;
45.令牌生成子模块,用于根据所述第一目标头部部分、所述第一目标负载部分和所述第一目标签名部分生成第一目标访问令牌。
46.可选地,所述负载生成子模块,用于对所述用户信息进行b编码,生成第一负载部分;将所述时间信息以大端序排列为32位的一第一目标整数,并利用base64对所述第一目标整数进行编码,生成第一字符串;去除所述第一字符串的最后两个字节,得到第二字符串;对所述第二字符串进行b编码,生成第二负载部分;根据所述第一负载部分和所述第二负载部分,得到所述第一目标负载部分。
47.可选地,所述负载生成子模块,用于对所述其他信息进行b编码,生成第三字符串;将所述整数字符串以大端序排列为64位的一第二目标整数,并对所述第二目标整数进行base64编码,生成第四字符串;去除所述第四字符串的最后一个字节,并进行b编码,以生成第五字符串;根据所述第三字符串和所述第五字符串,生成所述第一负载部分。
48.可选地,所述签名生成子模块,用于将所述第一目标头部部分和所述第一目标负载部分拼接为第六字符串;采用预设加密算法,对所述第六字符串进行签名,生成第七字符串;对所述第七字符串进行base64编码,生成所述第一目标签名字符串。
49.本发明实施例还提供了一种访问令牌的识别装置,所述装置包括:
50.解码模块,用于当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对所述第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;
51.验证模块,用于根据所述第二目标头部部分、所述第二目标负载部分和所述第二目标签名部分进行校验;
52.用户信息获取模块,用于当校验通过时,从所述第二目标负载部分获取对应的用户信息。
53.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上的访问令牌的生成方法,或者实现如上的访问令牌的识别方法。
54.本发明实施例具有以下优点:
55.本发明实施例中,服务端先接收客户端发送的用户信息;然后对所述用户信息和针对令牌的时间信息进行b编码,生成第一目标访问令牌;再向所述客户端返回所述第一目标访问令牌。通过本发明实施例,实现了基于b编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力,且在b编码中引入了时间戳的概念,可以保证访问令牌中具备jwt签发中所需要的时间信息。
附图说明
56.为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附
图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
57.图1是本发明实施例的一种访问令牌的生成方法的步骤流程图;
58.图2是本发明实施例的另一种访问令牌的生成方法的步骤流程图;
59.图3是本发明实施例的又一种访问令牌的生成方法的步骤流程图;
60.图4是本发明实施例的一种访问令牌的识别方法的步骤流程图;
61.图5是现有的jwt认证流程的示意图;
62.图6是本发明实施例的一种jwt认证流程的示意图;
63.图7是本发明实施例的一种服务器的结构示意图;
64.图8是本发明实施例的一种访问令牌的生成装置的结构框图;
65.图9是本发明实施例的一种访问令牌的识别装置的结构框图。
具体实施方式
66.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
67.目前,现有的jwt采用json与base64编码的方式进行定义,其中json是一种源于javascript语言中定义数据结构的语法定义,用于取代开销较大的xml格式定义,但依然有比较多的数据开销,而base64则是数据编码格式,通过映射算法,将源数据映射为其他数据结构,但同时会产生约30%的额外空间开销。
68.例如,同样的字符串和整数用json格式存储如下:
69.{
70."name":"test",
71."project":"hello world",
72."length":1234,
73."score":-1234,
74.}
75.json格式中的大括号、双引号及逗号增加了不必要的空间开销,使得json数据偏大,以上数据再通过base64编码之后,得到的数据为eyjuyw1lijoginrlc3qilcaichjvamvjdci6icjozwxsb3dvcmxkiiwgimxlbmd0aci6ideymzqsicjzy29yzsi6ideymzr9。
76.比原有的json数据72个字节多出24个字节,约冗余出33%的空间开销,而这些额外的开销并不与jwt的认证机制相关。
77.b编码是一种在bittorrent传输协议中,用于存储传输元数据文件的格式定义,其中支持的数据类型为:字符串类型,整数类型,列表类型与字典类型,从定义上,能够与json格式一一对应并兼容,但空间开销比json格式更优。因此,本发明实施例采用能够兼容现有的jwt认证机制的b编码的方式,来减少jwt的编码空间开销。
78.参照图1,示出了本发明实施例的一种访问令牌的生成方法的步骤流程图,可以包
括如下步骤:
79.步骤101、接收客户端发送的用户信息。
80.其中,用户信息可以包括用针对用户的多条字符串类型的信息,例如:用户名、用户id(identity document,身份标识号)等,本发明实施例对此不作限制。
81.当客户端需要获取访问令牌时,可以先向服务端发送一用户信息。
82.步骤102、对用户信息和针对令牌的时间信息进行bencoding b编码,生成第一目标访问令牌。
83.其中,第一目标访问令牌可以是以bencoding格式存储的访问令牌,第一目标访问令牌可以指jwt令牌。
84.服务端在接收到用户信息后,可以生成对应的访问令牌;但是,现有技术中是采用json格式加base64编码结合,存储空间较大,需要占用比较多的网络传输流量。在要求高响应及低带宽如物联网的场景下,并不太实用。
85.为了减少所得到的访问令牌所需要的存储空间,以及减少其所占用的网络传输流量,可以对用户信息进行bencodingb编码。
86.b编码的规则如下:
87.字符串类型:《字符串长度》:《字符串》
88.例如:
89.5:hello表示字符串“hello”。
90.6:telecom表示字符串“telecom”。
91.整数类型:i《整数》e
92.以字串i开始,e结束,中间为整数的字符串表示。
93.例如:
94.i369e表示数字369。
95.i803110e表示数字803110。
96.列表类型:l《b编码数据类型》e
97.以字符l开始,e结束,中间包含若干b编码的数据格式,可以为字符串、整数、列表、字典等数据,依次罗列,无数量限制。
98.例如:
99.li803110e6:telecome表示列表[803110,“telecom”]
[0100]
字典类型:d《b编码字符串》《b编码类型》e
[0101]
以字符d开始,e结束,中间为以b编码字符串表示的键值与b编码的数据类型作为数值的组合对。
[0102]
例如:
[0103]
d6:telecomi803110e5:hello8:dizhie表示字典{“telecom”:803110,“hello”:”dizhi”}
[0104]
相比于标准的jwt方式,以b编码的方式来进行编码可以有效的节约数据存储的开销,降低网络传输的带宽压力。
[0105]
但是,在jwt的签发中,多处需要涉及时间戳的概念,而传统的b编码中并不拥有时间戳的格式定义。
[0106]
因此,服务端在接收到用户信息后,可以再获取针对访问令牌的时间信息,以便在b编码中引入了时间戳的概念;其中,时间信息可以包括签发时间和令牌有效期,本发明实施例对此不作限制。
[0107]
具体的,在对用户信息进行b编码时,还可以对针对访问令牌的时间信息进行b编码;从而,根据两次编码得到的字符串,得到以bencoding格式存储的第一目标访问令牌。
[0108]
步骤103、向客户端返回第一目标访问令牌。
[0109]
服务端在生成第一目标访问令牌后,可以向对应的客户端返回该第一目标访问令牌。从而,客户端可以将该第一目标访问令牌保存至cookie中,并且在之后向服务端发送请求时,客户端可以自动在请求中携带该第一目标访问令牌进行身份的验证。
[0110]
以用户yangmei为例,以下是jwt中记录信息的payload的数据内容
[0111]
{
[0112]
"sub":1486170625572139008,
[0113]
"iss":"telecom",
[0114]
"name":"yangmei",
[0115]
"iat":1643065790981,
[0116]
"nbf":1643065800981
[0117]
}
[0118]
采用json格式加base64编码的话,访问令牌为:
[0119]
eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioje0odyxnza2mju1nzixmzkwmdasimlzcyi6inrlbgvjb20ilcjuyw1lijoiewfuz21lasisimlhdci6mty0mza2ntc5mdk4mswibmjmijoxnjqzmdy1odawotgxfq.vjbvtyolhakx5ovixbzpgmwgqa5zeit5r4pkbge-2ja
[0120]
jwt格式的内容占用215个字节,其中json格式的payload占用109个字节。
[0121]
采用b编码得到的访问令牌为:
[0122]
d3:subi1486170625572139008e3:iss6:telecom4:name7:yangmei3:iati1643065790981e3:nbfi1643065800981ee
[0123]
为97个字节。比采用json格式的payload减少了约11%的存储空间。
[0124]
本发明实施例中,服务端先接收客户端发送的用户信息;然后对用户信息和针对令牌的时间信息进行b编码,生成第一目标访问令牌;再向客户端返回第一目标访问令牌。通过本发明实施例,实现了基于b编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力,且在b编码中引入了时间戳的概念,可以保证访问令牌中具备jwt签发中所需要的时间信息。
[0125]
参照图2,示出了本发明实施例的另一种访问令牌的生成方法的步骤流程图,可以包括如下步骤:
[0126]
步骤201、接收客户端发送的用户信息。
[0127]
当客户端需要获取访问令牌时,可以先向服务端发送一用户信息。
[0128]
步骤202、生成第一目标头部部分。
[0129]
其中,第一目标头部部分可以用于描述jwt的元数据。
[0130]
服务端在接收到用户信息后,可以根据签名的算法和令牌的属性生成第一目标头部部分。
[0131]
具体的,在生成第一目标头部部分时,可以根据jwt的规则,以b编码的方式生成bencoding格式存储的第一目标头部部分。
[0132]
例如:签名的算法为hs2563,令牌的属性为jwte;则可以根据jwt的规则,以b编码的方式生成第一目标头部部分:d3:alg5:hs2563:typ3:jwte。
[0133]
步骤203、对用户信息和时间信息进行b编码,生成第一目标负载部分。
[0134]
其中,第一目标负载部分可以用来存放实际需要传递的数据。
[0135]
在生成第一目标头部部分时,服务端可以对接收到的用户信息进行b编码,以及对针对访问令牌的时间信息进行b编码,以生成bencoding格式存储的第一目标负载部分。
[0136]
例如:用户信息包括:用户名yangmei,用户id号1486170625572139008;时间信息包括:签发时间为2022年1月12日13时32分53秒,令牌有效期从2022年1月12日14点13分32秒开始至2022年2月14日11点12分13秒结束;签发机构为telecom。
[0137]
则可以对上述用户信息进行b编码,以及对上述时间信息和签发机构进行b编码以生成第一目标负载部分:d3:subxifj/wt1ty8aa4:name7:yangmei3:iatxtyd7yhq3:nbfxtyd7ida3:expxtygo5dq3:iss7:telecome。
[0138]
步骤204、根据第一目标头部部分和第一目标负载部分,生成第一目标签名字符串,并对第一目标签名字符串进行b编码,生成第一目标签名部分。
[0139]
其中,第一目标签名部分可以是对第一目标头部部分和第一目标负载部分的签名,用于防止数据被篡改。
[0140]
在生成第一目标头部部分和第一目标负载部分后,服务端可以根据第一目标头部部分和第一目标负载部分来生成第一目标签名字符串。
[0141]
然后,可以对第一目标签名字符串进行b编码,以生成bencoding格式存储的第一目标签名字符串。
[0142]
在本发明一实施例中,第一目标签名字符串可以通过如下子步骤实现:
[0143]
子步骤11、将第一目标头部部分和第一目标负载部分拼接为第六字符串。
[0144]
首先,可以将第一目标头部部分和第一目标负载部分拼接在一起,得到第六字符串。
[0145]
例如:第一目标头部部分为d3:alg5:hs2563:typ3:jwte,第一目标负载部分为d3:subxifj/wt1ty8aa4:name7:yangmei3:iatxtyd7yhq3:nbfxtyd7ida3:expxtygo5dq3:iss7:telecome;则可以将第一目标头部部分和第一目标负载部分拼接得到第六字符串d3:alg5:hs2563:typ3:jwted3:subxifj/wt1ty8aa4:name7:yangmei3:iatxtyd7yhq3:nbfxtyd7ida3:expxtygo5dq3:iss7:telecome。
[0146]
子步骤12、采用预设加密算法,对第六字符串进行签名,生成第七字符串。
[0147]
在生成第六字符串后,服务端可以采用预设加密算法对第六字符串进行签名,以生成加密后的第七字符串;其中,预设加密算法可以根据实际情况设定,例如:签名hmac算法,本发明实施例对此不作限制。
[0148]
子步骤13、对第七字符串进行base64编码,生成第一目标签名字符串。
[0149]
在得到第七字符串后,服务端可以对第七字符串进行base64编码,以生成第一目标签名字符串。
[0150]
例如:第六字符串d3:alg5:hs2563:typ3:jwted3:subxifj/wt1ty8aa4:name7:
yangmei3:iatxtyd7yhq3:nbfxtyd7ida3:expxtygo5dq3:iss7:telecome,使用签名hmac算法对第六字符串进行签名,生成第七字符串,然后对第七字符串进行base64编码后,生成第一目标签名字符串lf4+mj1q19g35q4cbgycc22zw+kgqkmortww2lmsgny=。
[0151]
步骤205、根据第一目标头部部分、第一目标负载部分和第一目标签名部分生成第一目标访问令牌。
[0152]
在得到第一目标头部部分、第一目标负载部分和第一目标签名部分后,服务端可以将第一目标头部部分、第一目标负载部分和第一目标签名部分进行组合,从而得到第一目标访问令牌。
[0153]
例如:第一目标头部部分为d3:alg5:hs2563:typ3:jwted,第一目标负载部分为3:subxifj/wt1ty8aa4:name7:yangmei3:iatxtyd7yhq3:nbfxtyd7ida3:expxtygo5dq3:iss7:telecome,第一目标签名部分为lf4+mj1q19g35q4cbgycc22zw+kgqkmortww2lmsgny=;将第一目标头部部分、第一目标负载部分和第一目标签名部分进行组合,可以得到第一目标访问令牌d3:alg5:hs2563:typ3:jwted3:subxifj/wt1ty8aa4:name7:yangmei3:iatxtyd7yhq3:nbfxtyd7ida3:expxtygo5dq3:iss7:telecome44:lf4+mj1q19g35q4cbgycc22zw+kgqkmortww2lmsgny=。
[0154]
若采用json格式加base64编码结合的方式的话,则生成访问令牌:eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioje0odyxnza2mju1nzixmzkwmdasimlzcyi6inrlbgvjb20ilcjuyw1lijoiewfuz21lasisimlhdci6mty0mtk5ndm3mzawmcwibmjmijoxnjqxotk2odeymdawlcjlehaioje2ndq4mzcxmzmwmdb9.af-e42gepocqnhpc6mo1iye0pplzc32wvr3ovuewwgm。
[0155]
比较可知,采用本发明的访问令牌的生成方法所生成的访问令牌为160个字节,而采用json格式加base64编码结合的方式所生成的访问令牌为241个字节;相同数据的情况下,本发明的访问令牌的生成方法有33.6%的数据压缩率。
[0156]
步骤206、向客户端返回第一目标访问令牌。
[0157]
服务端在生成第一目标访问令牌后,可以向对应的客户端返回该第一目标访问令牌。从而,客户端可以将该第一目标访问令牌保存至cookie中,并且在之后向服务端发送请求时,客户端可以自动在请求中携带该第一目标访问令牌进行身份的验证。
[0158]
本发明实施例中,服务端先接收客户端发送的用户信息;然后生成第一目标头部部分;以及,对用户信息和时间信息进行b编码,生成第一目标负载部分;以及,根据第一目标头部部分和第一目标负载部分,生成第一目标签名字符串,并对第一目标签名字符串进行b编码,生成第一目标签名部分;然后再根据第一目标头部部分、第一目标负载部分和第一目标签名部分生成第一目标访问令牌;之后再向客户端返回第一目标访问令牌。通过本发明实施例,实现了基于b编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力,且在b编码中引入了时间戳的概念,可以保证访问令牌中具备jwt签发中所需要的时间信息。
[0159]
参照图3,示出了本发明实施例的又一种访问令牌的生成方法的步骤流程图,可以包括如下步骤:
[0160]
步骤301、接收客户端发送的用户信息。
[0161]
当客户端需要获取访问令牌时,可以先向服务端发送一用户信息。
[0162]
步骤302、生成第一目标头部部分。
[0163]
服务端在接收到用户信息后,可以根据签名的算法和令牌的属性生成第一目标头部部分。
[0164]
具体的,在生成第一目标头部部分时,可以根据jwt的规则,以b编码的方式生成bencoding格式存储的第一目标头部部分。
[0165]
步骤303、对用户信息进行b编码,生成第一负载部分。
[0166]
在生成第一目标头部部分时,服务端可以对接收到的用户信息进行b编码,以及对针对访问令牌的时间信息进行b编码,以生成bencoding格式存储的第一目标负载部分。
[0167]
在本发明一实施例中,用户信息包括一标记用户唯一性的整数字符串和其他信息,第一负载部分可以通过如下子步骤生成:
[0168]
子步骤21、对其他信息进行b编码,生成第三字符串。
[0169]
首先,可以先对其他信息进行b编码,以生成第三字符串。
[0170]
例如:如果其他信息包括用户名yangmei,则可以对用户名yangmei进行b编码,以生成bencoding格式存储的第三字符串name7:yangmei3。
[0171]
子步骤22、将整数字符串以大端序排列为64位的一第二目标整数,并对第二目标整数进行base64编码,生成第四字符串。
[0172]
在实际应用中,在jwt中需要携带一个64bit的数字作为用户的唯一标识,b编码在jwt应用中需要多次处理字符串与大整数类型的数据转换,在高并发及低内存环境(如物联网设备上)会有较大的系统与网络开销。
[0173]
因此,本发明在对整数字符串进行处理时,可以先将整数字符串以大端序排列为64位的一第二目标整数;从而,减少整数字符串的解码编码的开销压力,并且传输中的存储空间开销与带宽开销也明显降低。
[0174]
然后,对第二目标整数进行base64编码,生成第四字符串。
[0175]
作为一示例,大端法是计算机用于表述超过一个字节数字的描述格式,对于常用的intel处理器,一般采用小端法,而对于网络传输以及移动端的arm处理器,一般使用大端法进行表述。其中,大端法即表示先存储整数高位,再存储整数低位。例如,对于32位整数0xaa55,采用大端法进行存储表述为[0xaa,0x55]。若采用小端法表述为[0x55,0xaa]。
[0176]
子步骤23、去除第四字符串的最后一个字节,并进行b编码,以生成第五字符串。
[0177]
第四字符串最后的字节为“=”,其增加了不必要的空间开销;因此,在得到第四字符串后,可以去除第四字符串的最后一个字节“=”。然后,对去除最后一个字节的第四字符串进行编码,从而生成bencoding格式存储的第五字符串。
[0178]
具体的,可以以字符“xi”开始,并接上去除最后一个字节的第四字符串,从而得到第五字符串:xi《去除最后一个字节的第四字符串》;其中,第五字符串可以表示整数字符串。
[0179]
作为一示例,在解码时,可以在第五字符串的最后添加“=”,然后通过base64对其解码,并根据大端法的表示规则,将其转换成本机的整数类型。
[0180]
子步骤24、根据第三字符串和第五字符串,生成第一负载部分。
[0181]
在得到针对其他信息生成的第三字符串和针对整数字符串生成的第五字符串后,服务端可以将第三字符串和第五字符串拼接成生成第一负载部分。
[0182]
步骤304、将时间信息以大端序排列为32位的一第一目标整数,并利用base64对第一目标整数进行编码,生成第一字符串。
[0183]
对于时间信息的编码,可以先将时间信息以大端序排列为32位的一第一目标整数,并利用base64对第一目标整数进行编码,生成第一字符串。
[0184]
具体的,可以将从格林威治时间1970年1月1日0时0分0秒至时间信息对应时间的秒数以大端序排列为32位的一第一目标整数。
[0185]
然后,服务端可以利用base64对所得到的第一目标整数进行编码,并得到第一字符串。
[0186]
步骤305、去除第二负载部分的最后两个字节,得到第二字符串。
[0187]
第一字符串最后的字节为“==”,其增加了不必要的空间开销;因此,在得到第一字符串后,可以去除第一字符串的最后两个字节“==”,从而生成第二字符串。
[0188]
步骤306、对所述第二字符串进行b编码,生成第二负载部分。
[0189]
然后,可以对第二字符串进行b编码,以生成bencoding格式存储的第二负载部分。
[0190]
具体的,可以以字符“xt”开始,并接上第二字符串,得到第二负载部分:xt《第二字符串》;其中,第二负载部分可以表示一时间戳;该时间戳与计算机内部时间戳具有直接的映射关系,能够直接与系统时钟进行比较;从而,可以减少了日期编码解码的系统开销。
[0191]
作为一示例,在解码时,可以在第二负载部分的最后添加字符“==”,然后通过base64对其解码,并根据大端法的表示规则,将其转换成本机的整数,即可获得对应时间的时间戳。
[0192]
步骤307、根据第一负载部分和第二负载部分,得到第一目标负载部分。
[0193]
在得到第一负载部分和第二负载部分后,服务端可以将第一负载部分和第二负载部分拼接起来,从而得到第一目标负载部分。
[0194]
步骤308、根据第一目标头部部分和第一目标负载部分,生成第一目标签名字符串,并对第一目标签名字符串进行b编码,生成第一目标签名部分。
[0195]
在生成第一目标头部部分和第一目标负载部分后,服务端可以根据第一目标头部部分和第一目标负载部分来生成第一目标签名字符串。
[0196]
然后,可以对第一目标签名字符串进行b编码,以生成bencoding格式存储的第一目标签名字符串。
[0197]
步骤309、根据第一目标头部部分、第一目标负载部分和第一目标签名部分生成第一目标访问令牌。
[0198]
在得到第一目标头部部分、第一目标负载部分和第一目标签名部分后,服务端可以将第一目标头部部分、第一目标负载部分和第一目标签名部分进行组合,从而得到第一目标访问令牌。
[0199]
步骤310、向客户端返回第一目标访问令牌。
[0200]
服务端在生成第一目标访问令牌后,可以向对应的客户端返回该第一目标访问令牌。从而,客户端可以将该第一目标访问令牌保存至cookie中,并且在之后向服务端发送请求时,客户端可以自动在请求中携带该第一目标访问令牌进行身份的验证。
[0201]
本发明实施例中,服务端先接收客户端发送的用户信息;然后生成第一目标头部部分;以及,对用户信息进行b编码,生成第一负载部分;以及,将时间信息以大端序排列为
32位的一第一目标整数,并利用base64对第一目标整数进行编码,生成第一字符串;以及,去除第二负载部分的最后两个字节,得到第二字符串;以及,将xt《第二字符串》作为第二负载部分;以及,根据第一负载部分和第二负载部分,得到第一目标负载部分;然后再根据第一目标头部部分和第一目标负载部分,生成第一目标签名字符串,并对第一目标签名字符串进行b编码,生成第一目标签名部分,并根据第一目标头部部分、第一目标负载部分和第一目标签名部分生成第一目标访问令牌;之后,再向客户端返回第一目标访问令牌。通过本发明实施例,实现了基于b编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力,且在b编码中引入了时间戳的概念,可以保证访问令牌中具备jwt签发中所需要的时间信息。
[0202]
且该时间戳与计算机内部时间戳具有直接的映射关系,能够直接与系统时钟进行比较;从而,可以减少了日期编码解码的系统开销。
[0203]
参照图4,示出了本发明实施例的一种访问令牌的识别方法的步骤流程图,可以包括如下步骤:
[0204]
步骤401、当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分。
[0205]
其中,业务请求可以用于客户端向服务端请求业务数据;业务请求中可以包括第二目标访问令牌,也可以包括其他用于请求业务数据的信息。
[0206]
第二目标访问令牌可以是客户端中所保存的、服务端预先根据上述访问令牌的生成方法生成的访问令牌;客户端在请求业务数据时,可以在请求中携带该第二目标访问令牌,以便对身份进行验证。
[0207]
服务端在接收到客户端发送的包括有第二目标访问令牌的业务请求时,可以先对第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分。
[0208]
具体的,可以先对第二目标访问令牌进行b编码的解码过程,获取第二目标头部部分;然后,对第二目标访问令牌剩下的数据再进行b编码的解码过程,获取第二目标负载部分。
[0209]
然后,再对第二目标访问令牌剩下的数据进行b编码的解码过程,得到第二目标签名部分。
[0210]
步骤402、根据第二目标头部部分、第二目标负载部分和第二目标签名部分进行校验。
[0211]
在获得第二目标头部部分、第二目标负载部分和第二目标签名部分后,可以先从第二目标头部部分中获取签名的算法和令牌的属性;然后根据签名的算法对第二目标头部部分和第二目标负载部分所拼接得到的字符串进行签名,得到当前签名字符串。
[0212]
然后,比较当前签名字符串与第二目标签名部分的内容是否一致;若不一致,则可以表示客户端的第二目标访问令牌被修改过;如果一致,则可以表示客户端的第二目标访问令牌就是服务端在先下发的访问令牌,未被修改。
[0213]
步骤403、当校验通过时,从第二目标负载部分获取对应的用户信息。
[0214]
当当前签名字符串与第二目标签名部分的内容一致时,可以表示校验通过;此时,
可以从第二目标负载部分中获取对应的用户信息,以便服务端根据该用户信息进行下一步操作,例如:相应客户端的请求等,本发明实施例对此不作限制。
[0215]
以下,对访问令牌的生成和识别过程进行举例说明:
[0216]
生成过程:
[0217]
步骤1a.根据jwt的规则,以b编码的方式生成jwt的头部部分。
[0218]
步骤2a.将jwt规则中payload的内容以改良后的b编码方式进行编码。
[0219]
步骤3a.将步骤1a与步骤2a的内容进行拼接,并依照jwt的规则对数据进行hmac256的方式签名后经过base64编码。
[0220]
步骤4a.将步骤3a中生成的签名字符串以b编码的方式进行编码。
[0221]
步骤5a.将步骤1a,步骤2a与步骤4a生成的数据进行组合,得到最终的访问令牌。
[0222]
识别过程:步骤1b.将得到的访问令牌采用b编码进行解码,获得第一部分的头部部分。
[0223]
步骤2b.继续采用b编码对剩下的数据进行解码,获取payload的数据。
[0224]
步骤3b.继续采用b编码获取最后的签名字符串。
[0225]
步骤4b.根据步骤1b中获取的jwt令牌头及步骤3b中获得的签名,对步骤2b中获取的payload根据jwt的校验机制进行校验,从而验证该访问令牌的有效性并获取访问令牌中的数据。
[0226]
进行校验时,由于b编码本身的特点,其可以在解码过程中自然区分头部部分,负载部分以及签名部分,因此根据步骤1b至步骤4b即可恢复符合jwt校验机制的令牌数据,此后采用jwt的校验机制对令牌数据进行校验。
[0227]
如图5,现有的jwt认证流程:先生成认证信息,然后采用jwt认证加密;之后采用json格式编码+base64编码生成访问令牌;然后通过网络传输该访问令牌。当解码时,先进行base64解码,再进行json格式解码,并采用jwt解密验证。
[0228]
如图6,本发明实施例的jwt认证流程:先生成认证信息,然后采用jwt认证加密;之后,采用本发明实施例的访问令牌的生成方法中优化的b编码进行编码;然后通过网络传输该访问令牌。当解码时,采用本发明实施例的访问令牌的识别方法中优化的b编码进行解码,并采用jwt解密验证。
[0229]
本发明实施例中,服务端当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;根据第二目标头部部分、第二目标负载部分和第二目标签名部分进行校验;当校验通过时,根据业务请求向客户端返回对应的业务数据。通过本发明实施例,实现了基于b编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力。
[0230]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0231]
参照图7,示出了本发明实施例的一种服务器的结构示意图。
[0232]
一方面,服务器700可以用于接收客户端发送的用户信息;对用户信息进行b编码,以及对针对令牌的时间信息进行b编码,生成第一目标访问令牌;向客户端返回第一目标访问令牌。
[0233]
具体的,服务器700在接收到用户信息后,可以对用户信息进行b编码。
[0234]
同时,在接收到用户信息后,可以再获取针对访问令牌的时间信息,以便在b编码中引入了时间戳的概念。
[0235]
在对用户信息进行b编码时,还可以对针对访问令牌的时间信息进行b编码;从而,根据两次编码得到的字符串,得到以bencoding格式存储的第一目标访问令牌。
[0236]
服务器700在生成第一目标访问令牌后,可以向对应的客户端返回该第一目标访问令牌。从而,客户端可以将该第一目标访问令牌保存至cookie中,并且在之后向服务器700发送请求时,客户端可以自动在请求中携带该第一目标访问令牌进行身份的验证。
[0237]
另外一方面,服务器700还可以用于当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;根据第二目标头部部分和第二目标签名部分进行校验;当校验通过时,根据业务请求向客户端返回对应的业务数据。
[0238]
服务器700在接收到客户端发送的包括有第二目标访问令牌的业务请求时,可以先对第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分。
[0239]
具体的,可以先对第二目标访问令牌进行b编码的解码过程,获取第二目标头部部分;然后,对第二目标访问令牌剩下的数据再进行b编码的解码过程,获取第二目标负载部分。
[0240]
然后,再对第二目标访问令牌剩下的数据进行b编码的解码过程,得到第二目标签名部分。
[0241]
在获得第二目标头部部分、第二目标负载部分和第二目标签名部分后,可以先从第二目标头部部分中获取签名的算法和令牌的属性;然后根据签名的算法对第二目标头部部分和第二目标负载部分所拼接得到的字符串进行签名,得到当前签名字符串。
[0242]
然后,比较当前签名字符串与第二目标签名部分的内容是否一致;若不一致,则可以表示客户端的第二目标访问令牌被修改过;如果一致,则可以表示客户端的第二目标访问令牌就是服务器700在先下发的访问令牌,未被修改。
[0243]
当当前签名字符串与第二目标签名部分的内容一致时,可以表示校验通过;此时,可以从第二目标负载部分中获取对应的用户信息,以便服务器700根据该用户信息进行下一步操作。
[0244]
本发明实施例中,服务端先接收客户端发送的用户信息;然后对用户信息和针对令牌的时间信息进行b编码,生成第一目标访问令牌;再向客户端返回第一目标访问令牌。通过本发明实施例,实现了基于b编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力,且在b编码中引入了时间戳的概念,可以保证访问令牌中具备jwt签发中所需要的时间信息。
[0245]
参照图8,示出了本发明实施例的一种访问令牌的生成装置的结构示意图,可以包括如下模块:
[0246]
接收模块801,用于接收客户端发送的用户信息;
[0247]
编码模块802,用于对用户信息和针对令牌的时间信息进行bencoding b编码,生成第一目标访问令牌;
[0248]
返回模块803,用于向客户端返回第一目标访问令牌。
[0249]
本发明的一个可选实施例中,编码模块802,包括:
[0250]
头部生成子模块,用户生成第一目标头部部分;
[0251]
负载生成子模块,用于对用户信息和时间信息进行b编码,生成第一目标负载部分;
[0252]
签名生成子模块,用于根据第一目标头部部分和第一目标负载部分,生成第一目标签名字符串,并对第一目标签名字符串进行b编码,生成第一目标签名部分;
[0253]
令牌生成子模块,用于根据第一目标头部部分、第一目标负载部分和第一目标签名部分生成第一目标访问令牌。
[0254]
本发明的一个可选实施例中,负载生成子模块,用于对用户信息进行b编码,生成第一负载部分;将时间信息以大端序排列为32位的一第一目标整数,并利用base64对第一目标整数进行编码,生成第一字符串;去除第一字符串的最后两个字节,得到第二字符串;对所述第二字符串进行b编码,生成第二负载部分;根据第一负载部分和第二负载部分,得到第一目标负载部分。
[0255]
本发明的一个可选实施例中,负载生成子模块,用于对其他信息进行b编码,生成第三字符串;将整数字符串以大端序排列为64位的一第二目标整数,并对第二目标整数进行base64编码,生成第四字符串;去除第四字符串的最后一个字节,并进行b编码,以生成第五字符串;根据第三字符串和第五字符串,生成第一负载部分。
[0256]
本发明的一个可选实施例中,签名生成子模块,用于将第一目标头部部分和第一目标负载部分拼接为第六字符串;采用预设加密算法,对第六字符串进行签名,生成第七字符串;对第七字符串进行base64编码,生成第一目标签名字符串。
[0257]
本发明实施例中,服务端先接收客户端发送的用户信息;然后对用户信息和针对令牌的时间信息进行b编码,生成第一目标访问令牌;再向客户端返回第一目标访问令牌。通过本发明实施例,实现了基于b编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力,且在b编码中引入了时间戳的概念,可以保证访问令牌中具备jwt签发中所需要的时间信息。
[0258]
参照图9,示出了本发明实施例的一种访问令牌的识别装置的结构示意图,可以包括如下模块:
[0259]
解码模块901,用于当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;
[0260]
验证模块902,用于根据第二目标头部部分、第二目标负载部分和第二目标签名部分进行校验;
[0261]
用户信息获取模块903,用于当校验通过时,从第二目标负载部分获取对应的用户信息。
[0262]
本发明实施例中,服务端当接收到客户端发送的包括有第二目标访问令牌的业务
请求时,对第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;根据第二目标头部部分、第二目标负载部分和第二目标签名部分进行校验;当校验通过时,根据业务请求向客户端返回对应的业务数据。通过本发明实施例,实现了基于b编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力。
[0263]
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上的访问令牌的生成方法,或者实现如上的访问令牌的识别方法。
[0264]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0265]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0266]
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0267]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0268]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0269]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0270]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0271]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包
括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0272]
以上对所提供的一种访问令牌的生成方法和一种访问令牌的识别方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:


1.一种访问令牌的生成方法,其特征在于,所述方法包括:接收客户端发送的用户信息;对所述用户信息和针对令牌的时间信息进行bencoding b编码,生成第一目标访问令牌;向所述客户端返回所述第一目标访问令牌。2.根据权利要求1所述的方法,其也正在于,所述对所述用户信息和针对令牌的时间信息进行bencoding b编码,生成第一目标访问令牌,包括:生成第一目标头部部分;对所述用户信息和所述时间信息进行b编码,生成第一目标负载部分;根据所述第一目标头部部分和所述第一目标负载部分,生成第一目标签名字符串,并对所述第一目标签名字符串进行b编码,生成第一目标签名部分;根据所述第一目标头部部分、所述第一目标负载部分和所述第一目标签名部分生成第一目标访问令牌。3.根据权利要求2所述的方法,其特征在于,所述对所述用户信息和所述时间信息进行b编码,生成第一目标负载部分,包括:对所述用户信息进行b编码,生成第一负载部分;将所述时间信息以大端序排列为32位的一第一目标整数,并利用base64对所述第一目标整数进行编码,生成第一字符串;去除所述第一字符串的最后两个字节,得到第二字符串;对所述第二字符串进行b编码,生成第二负载部分;根据所述第一负载部分和所述第二负载部分,得到所述第一目标负载部分。4.根据权利要求3所述的方法,其特征在于,所述用户信息包括一标记用户唯一性的整数字符串和其他信息,所述对所述用户信息进行b编码,生成第一负载部分,包括:对所述其他信息进行b编码,生成第三字符串;将所述整数字符串以大端序排列为64位的一第二目标整数,并对所述第二目标整数进行base64编码,生成第四字符串;去除所述第四字符串的最后一个字节,并进行b编码,以生成第五字符串;根据所述第三字符串和所述第五字符串,生成所述第一负载部分。5.根据权利要求2-4任一项所述的方法,其特征在于,所述根据所述第一目标头部部分和所述第一目标负载部分,生成第一目标签名字符串,包括:将所述第一目标头部部分和所述第一目标负载部分拼接为第六字符串;采用预设加密算法,对所述第六字符串进行签名,生成第七字符串;对所述第七字符串进行base64编码,生成所述第一目标签名字符串。6.一种访问令牌的识别方法,其特征在于,所述方法包括:当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对所述第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;根据所述第二目标头部部分、所述第二目标负载部分和所述第二目标签名部分进行校验;
当校验通过时,从所述第二目标负载部分获取对应的用户信息。7.一种服务器,其特征在于,所述服务器,用于接收客户端发送的用户信息;对所述用户信息进行bencoding b编码,以及对针对令牌的时间信息进行b编码,生成第一目标访问令牌;向所述客户端返回所述第一目标访问令牌;所述服务器,还用于当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对所述第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;根据所述第二目标头部部分、所述第二目标负载部分和所述第二目标签名部分进行校验;当校验通过时,根据所述业务请求向所述客户端返回对应的业务数据。8.一种访问令牌的生成装置,其特征在于,所述装置包括:接收模块,用于接收客户端发送的用户信息;编码模块,用于对所述用户信息和针对令牌的时间信息进行bencoding b编码,生成第一目标访问令牌;返回模块,用于向所述客户端返回所述第一目标访问令牌。9.一种访问令牌的识别装置,其特征在于,所述装置包括:解码模块,用于当接收到客户端发送的包括有第二目标访问令牌的业务请求时,对所述第二目标访问令牌进行b编码的解码过程,得到第二目标头部部分、第二目标负载部分和第二目标签名部分;验证模块,用于根据所述第二目标头部部分、所述第二目标负载部分和所述第二目标签名部分进行校验;用户信息获取模块,用于当校验通过时,从所述第二目标负载部分获取对应的用户信息。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述访问令牌的生成方法,或者实现如权利要求6所述访问令牌的识别方法。

技术总结


本发明实施例提供了一种访问令牌的生成方法和一种访问令牌的识别方法,一种访问令牌的生成方法包括:服务端先接收客户端发送的用户信息;然后对所述用户信息和针对令牌的时间信息进行B编码,生成第一目标访问令牌;再向所述客户端返回所述第一目标访问令牌。通过本发明实施例,实现了基于B编码的编码方式,减少访问令牌所需要的存储空间,和所占用的网络传输流量;有效的节约数据存储的开销,降低网络传输的带宽压力,且在B编码中引入了时间戳的概念,可以保证访问令牌中具备jwt签发中所需要的时间信息。的时间信息。的时间信息。


技术研发人员:

黄庠魁 杨梅 姜齐 花煜 王蕙蓉

受保护的技术使用者:

中国电信股份有限公司

技术研发日:

2022.07.20

技术公布日:

2022/11/15

本文发布于:2024-09-20 13:33:02,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/3464.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:目标   令牌   所述   字符串
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议