CN108234122A - 令牌校验方法和装置 - Google Patents

令牌校验方法和装置 Download PDF

Info

Publication number
CN108234122A
CN108234122A CN201611128117.3A CN201611128117A CN108234122A CN 108234122 A CN108234122 A CN 108234122A CN 201611128117 A CN201611128117 A CN 201611128117A CN 108234122 A CN108234122 A CN 108234122A
Authority
CN
China
Prior art keywords
token
key
database
key assignments
identification strings
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611128117.3A
Other languages
English (en)
Other versions
CN108234122B (zh
Inventor
孙莹杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Haikang Automobile Technology Co Ltd
Original Assignee
Hangzhou Haikang Automobile Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Haikang Automobile Technology Co Ltd filed Critical Hangzhou Haikang Automobile Technology Co Ltd
Priority to CN201611128117.3A priority Critical patent/CN108234122B/zh
Publication of CN108234122A publication Critical patent/CN108234122A/zh
Application granted granted Critical
Publication of CN108234122B publication Critical patent/CN108234122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明属于网络访问控制技术领域,公开了令牌产生方法和装置以及令牌校验方法和装置。本发明的令牌产生方法,应用于服务器集群,该方法包括:接收客户端发送的需要校验的令牌的标识字符串;在令牌数据库中查找为标识字符串的键,其中令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为对应键的键值的信息字符串;当在令牌数据库中查找到为标识字符串的键后,获取键的键值,并随后将令牌数据库中存储的键的键值设为无效值;检测获取到的键的键值,当键值不是无效值时则校验结果为通过,当键值是无效值时则校验结果为不通过。本发明以简单方便的机制确保令牌一次有效。

Description

令牌校验方法和装置
技术领域
本发明涉及网络访问控制技术领域,特别涉及令牌校验方法和装置。
背景技术
在分布式系统中,各组件之间通过令牌传递用户身份是最常见的方案,例如单点登录、视频应用中取流等。利用令牌如何单点登录和身份校验已经有大量的发明,但是如何保证令牌一次有效在本发明之前目前尚无较好的方案。很多系统都没有真正做到令牌一次有效,存在较大的漏洞,或者为了达到一次有效的目的,系统将变得非常复杂。
现有技术中保证令牌一次有效的一般方案是:客户端向服务器集群申请令牌,服务器集群生成令牌,将令牌存入数据库中同时把令牌返回给客户端;客户端向服务器集群请求校验令牌,服务器集群从分布式锁服务器中获取该令牌的锁,将该令牌锁定,防止在校验期间出现同一令牌的另一校验进程,然后从数据库中提取令牌详细信息,进行令牌校验,确认令牌是否有效。
上述方案存在以下缺陷:
1、令牌存储在数据库中,由于申请令牌和校验令牌比较频繁,给数据库增加了不少压力。
2、需要分布式锁服务器,给系统增加了复杂性,给小型系统增加成本。
3、令牌有效期是在令牌服务器集群中校验的,需要令牌服务器和数据库服务器的时间保持严格一致。
4、逻辑复杂度高,步骤多,如果其中有一步失败的话,要很多容错步骤,且容易发生死锁。
发明内容
有鉴于此,本发明实施例提供了令牌校验方法和装置,简单方便的确保了令牌一次有效。其技术方案如下:
第一方面,一种令牌校验方法,应用于服务器集群,所述方法包括:
接收客户端发送的需要校验的令牌的标识字符串;
在令牌数据库中查找为所述标识字符串的键,其中所述令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为对应键的键值的信息字符串;
当在令牌数据库中查找到为所述标识字符串的键后,获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值;
检测获取到的所述键的键值,当该键值不是无效值时则校验结果为通过,当该键值是无效值时则校验结果为不通过。
可选择地,所述获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值是原子特性操作。
可选择地,所述令牌数据库为Redis数据库,所述在数据库中查找为所述标识字符串的键,获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值包括:
在Redis数据库中调用getex命令查找为所述标识字符串的键,获取所述键的键值,并随后将Redis数据库中存储的所述键的键值设为无效值。
可选择地,该方法还包括:在所述接收客户端发送的需要校验的令牌的标识字符串之前,通过以下方式生成所述令牌:
接收客户端的申请令牌的请求;
根据所述请求产生令牌,所述令牌包括标识字符串和信息字符串;
在令牌数据库中存储所述令牌,其中将标识字符串存为键,将所述信息字符串存为所述键的键值;
将所述令牌的标识字符串发送给客户端。
可选择地,该方法还包括:
在令牌数据库中存储所述令牌时,设置所述令牌的有效期;
当所述令牌数据库中所述令牌的存储时长超过所述有效期时,将对应的键的键值设为无效值。
可选择地,所述令牌数据库为Redis数据库,所述在数据库中存储所述令牌包括:
在Redis数据库中调用setex命令存储所述令牌。
第二方面,一种令牌校验装置,该装置包括令牌校验单元,所述令牌校验单元包括:
令牌接收模块,用于接收客户端发送的需要校验的令牌的标识字符串;
令牌查找模块,用于在令牌数据库中查找为所述标识字符串的键,其中所述令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为对应键的键值的信息字符串;
键值获取模块,当在数据库中查找到为所述标识字符串的键后,获取所述键的键值,并将所述令牌数据库中存储的所述键的键值设为无效值;
令牌判断模块,用于检测获取到的所述键的键值,当该键值不是无效值时则校验结果为通过,当该键值是无效值时则校验结果为不通过。
可选择地,所述键值获取模块执行的操作为原子特性操作。
可选择地,所述数据库为Redis数据库,所述令牌查找模块具体用于在Redis数据库中调用getset命令查找为所述标识字符串的键,获取所述键的键值,并随后将所述Redis数据库中存储的所述键的键值设为无效值。
可选择地,该装置还包括令牌生成单元,所述令牌生成单元包括:
请求接收模块,用于接收客户端的申请令牌请求;
令牌生成模块,根据所述请求产生令牌,所述令牌包括标识字符串和信息字符串;
令牌存储模块,在令牌数据库中存储所述令牌,其中将标识字符串存为键,将所述信息字符串存为所述键的键值;
令牌发送模块,用于将所述令牌的标识字符发送给客户端。
可选择地,所述令牌存储模块还用于在令牌数据库中存储所述令牌时,设置所述令牌的有效期,所述令牌生成单元还包括:
令牌清除单元,用于当所述令牌数据库中所述令牌的存储时长超过所述有效期时,将对应的键的键值设为无效值。
可选择地,所述数据库为Redis数据库,所述令牌存储模块具体用于在Redis数据库中调用setex命令存储所述令牌。
本发明实施例提供的技术方案带来的有益效果是:
令牌包括标识字符串和信息字符串,且在令牌数据库中令牌的标识字符串存为键,令牌的信息字符串存为键值,校验时客户端只需要将令牌的标识字符串发送给服务器集群,服务器集群根据需要校验的令牌的标识字符串在令牌数据库中查找到对应的键及其键值,提取出键值并将令牌数据库中存储的键值设为无效值,由于设置了校验时只有键值不为无效值才能校验成功,因此只有当令牌第一次被校验时才能校验通过,即保证令牌一次有效,防止令牌泄露后被用来非法获取服务器集群的数据服务。本发明不需要像传统的方式那样利用分布式锁服务器进行复杂且要求严格同步的操作,简单易用,令牌校验开销成本低。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种例示性实施环境的示意图;
图2是本发明一实施例提供的令牌校验方法的流程图;
图3是进行校验的令牌的生成方式的流程图;
图4是本发明另一实施例提供的令牌校验装置的模块框图;
图5是本发明提供的例示性令牌校验装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是实施本发明的一种例示性实施环境的示意图。参见图1,该实施环境中包括:服务器集群101,客户端103,服务器集群101中包括有服务器102。
客户端103可以为手机等便携式终端,也可以为个人计算机、工作站。服务器集群101将多个服务器102集中起来一起提供同一种服务或多种服务,在客户端看来就像是只有一个服务器。应该理解,在服务器集群101中,服务器102的数量为一个或一个以上。
客户端103和服务器集群101通过无线或有线方式进行通信。为了确保从服务器集群101获得数据服务的客户端103是合法客户端,防止非法用户获得数据服务,需要引入令牌来进行身份校验。客户端103需要数据服务时,首先要向服务器集群101申请令牌,服务器集群101生成令牌发送给客户端103,客户端103携带令牌访问相应的数据服务,此时服务器集群101需要来对令牌进行校验,在确定该令牌是合法令牌并且是第一次被校验才认为校验通过,然后客户端103可以访问相应的数据服务。本发明就是针对令牌的校验进行改进,以简单方便的机制确保令牌一次有效。
本发明一实施例提供了一种令牌校验方法,应用于服务器集群,如图2所述,该方法包括如下步骤:
步骤S21:接收客户端发送的需要校验的令牌的标识字符串;
在该步骤中,客户端需要服务器集群提供数据服务时,将先前获得的令牌的标识字符串发送给服务器集群中的某个服务器以进行校验,该服务器接收该需要校验的令牌的标识字符串,或者自身执行校验,或者发送到特定的令牌校验服务器中进行校验。
一般地,令牌包括标识字符串和信息字符串,标识字符串是随机生成的但不会重复的、具有唯一性的字符串,作为令牌的唯一标识,而信息字符串记载了令牌的携带信息,携带信息可包括令牌所属的客户端信息、获得的服务权限等。但在校验时,客户端仅需要将令牌的标识字符串发送给服务器集群即可。
步骤S22:在令牌数据库中查找为该标识字符串的键,其中令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为键值的信息字符串;
在该步骤中,执行校验的服务器接收到令牌后,就需要到令牌数据库中查找标识相同的已存储令牌。应该理解,该令牌数据库可以设置在服务器集群的任何服务器中。令牌的标识实际上就是标识字符串,而在令牌数据库中,令牌的存储方式为将其标识字符串存为键,并将其信息字符串存为键值。因此,查找到为该标识字符串的键,则找到了需要校验的令牌的对应已存储令牌,进入下一步骤,如果没有找到为该标识字符串的键,则说明该令牌没有存储在令牌数据库中,可以直接认定校验没有通过,不需要执行下面的步骤。
步骤S23:当在令牌数据库中查找到为该标识字符串的键后,获取该键的键值,并随后将令牌数据库中存储的该键的键值设为无效值;
在该步骤中,为了确保该令牌只能被一次校验,所以提取出键值后,将该键的键值设为无效值,这样,下次再有相同的令牌来进行校验时,由于令牌数据库中对应的令牌的键值为无效值,因此提取到的键值为无效值,意味着校验不可能通过。
无效值例如可以为空值,也可以为其他设定的无效值,只要使得检测时可以直接发现该值不可能是有效的信息字符串即可。
步骤S24:检测获取到的键的键值,当键值不是无效值时则校验结果为通过,当键值是无效值时则校验结果为不通过。
在该步骤中,执行校验的服务器在令牌数据库中提取到对应键值后,就可以对其进行检测以确定检验结果。
键值不为无效值,说明该令牌是第一次校验,之前没有校验过,因此校验成功,然后可以返回成功的结果给相应的客户端和该令牌对应的服务所在的服务器端,服务器集群就可以根据信息字符串记载的信息为客户端提供相应的数据服务。
键值为无效值,说明该令牌不是第一次校验,之前已经被校验过,由于只允许令牌一次有效,因此校验结果为不通过,服务器集群不会为客户端提供相应的数据服务。
本实施例中,令牌包括标识字符串和信息字符串,且在令牌数据库中令牌的标识字符串存为键,令牌的信息字符串存为键值,校验时客户端只需要将令牌的标识字符串发送给服务器集群,服务器集群根据需要校验的令牌的标识字符串在令牌数据库中查找到对应的键及其键值,提取出键值并将令牌数据库中存储的键值设为无效值,由于设置了校验时只有键值不为无效值才能校验成功,因此只有当令牌第一次被校验时才能校验通过,即保证令牌一次有效,防止令牌泄露后被用来非法获取服务器集群的数据服务。本实施例不需要像传统的方式那样利用分布式锁服务器进行复杂且要求严格同步的操作,简单易用,令牌校验开销成本低。
作为本实施例进一步的改进,步骤S23可以是原子特性操作。由于是原子特性操作,因此只有提取找到的对应键的键值并将该键值设为无效值之后,才可以再次提取该键的键值,那么后来提取的键值必然为无效值,这就可以防止多个相同的令牌差不多同时申请校验而都获得通过。
应当理解,一般地,所谓原子特性,就是该操作不可分割,要么全部完成,要么失败,不会只执行其中的一部分,且该操作独占其需要的数据资源,其他操作不可在这期间访问该数据资源。
在步骤S21接收客户端发送的需要校验的令牌的标识字符串之前,如图3所示,本实施例可以通过以下方式生成该令牌:
步骤S31,接收客户端的申请令牌的请求;
在该步骤中,客户端为了获得服务器集群的某项数据服务,需要事先向服务器集群申请相应的令牌,服务器集群的任一服务器或特定服务器接收该项请求,由该任一服务器或特定服务器进行处理。
步骤S32,根据该请求产生令牌,令牌包括标识字符串和信息字符串;
在该步骤中,服务器通过预先设定的机制生成令牌,令牌包括标识字符串和信息字符串,其中标识字符串是随机生成但不重复的字符串,用来唯一标识令牌,而信息字符串记载了令牌的附加信息,附加信息例如包括客户端的信息和可以获得的服务权限等。
步骤S33,在令牌数据库中存储该令牌,其中将标识字符串存为键,将信息字符串存为该键的键值;
该步骤与上面的步骤S22相对应,由于令牌在令牌数据库中的存储形式为键和键值,因此查找令牌时,就可以通过键找到对应的令牌。
该步骤还可以包括在令牌数据库中存储该令牌时,设置该令牌的有效期。这样,当令牌数据库中该令牌的存储时长超过有效期时,就可以自动将对应的键的键值设为无效值,即清除对应的键的键值,当然还可以进一步将该键删除。例如,将有效期设置为2分钟,那么2分钟之后,这个键值就会清空,因此该令牌在该时间之后就无法通过校验。这是设置了自动过期来校验令牌的有效性,能在数据库中取到令牌的信息字符串就是有效,否则就是无效。并且,令牌的有效期校验是在令牌数据库中自动完成,不需要执行令牌校验的服务器和令牌数据库的时间一致,与具有分布式锁服务器的方案相比,后者需要分布式锁服务器的时间与令牌校验的服务器的时间严格同步,显然前者减少了操作难度,更容易满足操作条件。
步骤S34,将令牌的标识字符串发送给客户端。
在该步骤中,服务器将令牌的标识字符串返给相应的申请令牌的客户端,从而客户端就可以凭借此令牌的标识字符去进行校验,获得相应的数据服务。
本实施例中的令牌数据库可以采用Redis数据库。Redis数据库是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis数据库的setex命令可以把一个Key-Value键值对保存到Redis数据库,并设置有效期,有效期到期后,会自动把这个键值对删除。Redis数据库的setex命令getset命令可以把指定的key的value保存到Redis,并返回这个key原来的value。
本实施例可以利用上述命令来实现发明目的。在生成令牌之后在Redis数据库中调用setex命令存储令牌,即把令牌的标识字符串作为key,把信息字符串作为value,并设置有效期,然后保存到Redis。在校验令牌时,在Redis数据库中调用getset命令查找为所述标识字符串的键,获取该键的键值,并将Redis数据库中存储的该键的键值设为无效值,即把需要校验的令牌的标识字符串作为key,key的value设为无效值,在Redis数据库中找到该key,获取数据库中该key的value,并把数据库中存储的value变为无效值。如果在有效期内key的value没有被提取,那么value也会自动清除。由此只要将Redis数据库作为令牌数据库,调用Redis数据库现有的setex命令和getset命令就能保证令牌一次有效且过期令牌失效,即通过利用Redis的特性,降低软件复杂度,减少依赖条件,降低成本,提升性能。
本发明另一实施例提供了一种令牌校验装置,如图4所示,该装置包括令牌校验单元41,令牌校验单元包括:
令牌接收模块411,用于接收客户端发送的需要校验的令牌的标识字符串;
令牌查找模块412,用于在令牌数据库中查找为该标识字符串的键,其中该令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为对应键的键值的信息字符串;
键值获取模块413,当在数据库中查找到为该标识字符串的键后,获取该键的键值,并将令牌数据库中存储的该键的键值设为无效值,无效值例如可以是空值;
令牌判断模块414,用于检测获取到的键的键值,当键值不是无效值时则校验结果为通过,当键值是无效值时则校验结果为不通过。
本实施例中,令牌包括标识字符串和信息字符串,且在令牌数据库中令牌的标识字符串存为键,令牌的信息字符串存为键值,校验时客户端只需要将令牌的标识字符串发送给服务器集群,服务器集群根据需要校验的令牌的标识字符串在令牌数据库中查找到对应的键及其键值,提取出键值并将令牌数据库中存储的键值设为无效值,由于设置了校验时只有键值不为无效值才能校验成功,因此只有当令牌第一次被校验时才能校验通过,即保证令牌一次有效,防止令牌泄露后被用来非法获取服务器集群的数据服务。本实施例不需要像传统的方式那样利用分布式锁服务器进行复杂且要求严格同步的操作,简单易用,令牌校验开销成本低。
在一种可能的实现方式中,键值获取模块执行的操作为原子特性操作。
在一种可能的实现方式中,数据库为Redis数据库,令牌查找模块具体用于在Redis数据库中调用getset命令查找为标识字符串的键,获取该键的键值,并随后将Redis数据库中存储的该键的键值设为无效值。
如图4所示,本实施例的令牌校验装置还可包括令牌生成单元42,令牌生成单元42可包括:
请求接收模块421,用于接收客户端的申请令牌请求;
令牌生成模块422,根据所述请求产生令牌,所述令牌包括标识字符串和信息字符串;
令牌存储模块423,在令牌数据库中存储所述令牌,其中将标识字符串存为键,将所述信息字符串存为所述键的键值;
令牌发送模块424,用于将所述令牌的标识字符串发送给客户端。
在一种可能的实现方式中,令牌存储模块423还可用于在令牌数据库中存储令牌时,设置所述令牌的有效期,令牌生成单元42还可包括:令牌清除单元,用于当所述令牌数据库中所述令牌的存储时长超过所述有效期时,将对应的键的键值设为无效值,即将对应的键的键值设为无效值,即清除对应的键的键值。
在一种可能的实现方式中,数据库为Redis数据库,令牌存储模块具体用于在Redis数据库中调用setex命令存储令牌。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本实施例中提供的令牌校验装置与上一实施例中提供的令牌校验方法属于同一发明构思,其具体实现过程及其说明详见上一实施例,在此不再赘述。
图5是本发明提供的一种例示性令牌校验装置500的框图。例如,装置500可以被提供为一服务器。参照图5,装置500包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理部件522的执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行令牌校验方法。
装置500还可以包括:一个电源组件526,被配置为执行装置500的电源管理;一个有线或无线网络接口550,被配置为将装置500连接到网络;和一个输入输出(I/O)接口558。装置500可以操作存储在存储器532的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或其他类似系统。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤、模块可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种令牌校验方法,其特征在于,应用于服务器集群,所述方法包括:
接收客户端发送的需要校验的令牌的标识字符串;
在令牌数据库中查找为所述标识字符串的键,其中所述令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为对应键的键值的信息字符串;
当在令牌数据库中查找到为所述标识字符串的键后,获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值;
检测获取到的所述键的键值,当该键值不是无效值时则校验结果为通过,当该键值是无效值时则校验结果为不通过。
2.根据权利要求2所述的方法,其特征在于,所述获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值是原子特性操作。
3.根据权利要求1所述的方法,其特征在于,所述令牌数据库为Redis数据库,所述在数据库中查找为所述标识字符串的键,获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值包括:
在Redis数据库中调用getex命令查找为所述标识字符串的键,获取所述键的键值,并随后将Redis数据库中存储的所述键的键值设为无效值。
4.根据权利要求1-3任一项所述的方法,其特征在于,该方法还包括:在所述接收客户端发送的需要校验的令牌的标识字符串之前,通过以下方式生成所述令牌:
接收客户端的申请令牌的请求;
根据所述请求产生令牌,所述令牌包括标识字符串和信息字符串;
在令牌数据库中存储所述令牌,其中将标识字符串存为键,将所述信息字符串存为所述键的键值;
将所述令牌的标识字符串发送给客户端。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:
在令牌数据库中存储所述令牌时,设置所述令牌的有效期;
当所述令牌数据库中所述令牌的存储时长超过所述有效期时,将对应的键的键值设为无效值。
6.根据权利要求4或5所述的方法,其特征在于,所述令牌数据库为Redis数据库,所述在数据库中存储所述令牌包括:
在Redis数据库中调用setex命令存储所述令牌。
7.一种令牌校验装置,其特征在于,该装置包括令牌校验单元,所述令牌校验单元包括:
令牌接收模块,用于接收客户端发送的需要校验的令牌的标识字符串;
令牌查找模块,用于在令牌数据库中查找为所述标识字符串的键,其中所述令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为对应键的键值的信息字符串;
键值获取模块,当在数据库中查找到为所述标识字符串的键后,获取所述键的键值,并将所述令牌数据库中存储的所述键的键值设为无效值;
令牌判断模块,检测获取到的所述键的键值,当该键值不是无效值时则校验结果为通过,当该键值是无效值时则校验结果为不通过。
8.根据权利要求7所述的装置,其特征在于,所述键值获取模块执行的操作为原子特性操作。
9.根据权利要求7所述的装置,其特征在于,所述数据库为Redis数据库,所述令牌查找模块具体用于在Redis数据库中调用getset命令查找为所述标识字符串的键,获取所述键的键值,并随后将所述Redis数据库中存储的所述键的键值设为无效值。
10.根据权利要求7-9其中任一项所述的令牌校验装置,其特征在于,该装置还包括令牌生成单元,所述令牌生成单元包括:
请求接收模块,用于接收客户端的申请令牌请求;
令牌生成模块,根据所述请求产生令牌,所述令牌包括标识字符串和信息字符串;
令牌存储模块,在令牌数据库中存储所述令牌,其中将标识字符串存为键,将所述信息字符串存为所述键的键值;
令牌发送模块,用于将所述令牌的标识字符串发送给客户端。
11.根据权利要求10所述的方法,其特征在于,所述令牌存储模块还用于在令牌数据库中存储所述令牌时,设置所述令牌的有效期,所述令牌生成单元还包括:
令牌清除单元,用于当所述令牌数据库中所述令牌的存储时长超过所述有效期时,将对应的键的键值设为无效值。
12.根据权利要求10所述的令牌校验装置,其特征在于,所述数据库为Redis数据库,所述令牌存储模块具体用于在Redis数据库中调用setex命令存储所述令牌。
CN201611128117.3A 2016-12-09 2016-12-09 令牌校验方法和装置 Active CN108234122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611128117.3A CN108234122B (zh) 2016-12-09 2016-12-09 令牌校验方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611128117.3A CN108234122B (zh) 2016-12-09 2016-12-09 令牌校验方法和装置

Publications (2)

Publication Number Publication Date
CN108234122A true CN108234122A (zh) 2018-06-29
CN108234122B CN108234122B (zh) 2021-07-02

Family

ID=62637273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611128117.3A Active CN108234122B (zh) 2016-12-09 2016-12-09 令牌校验方法和装置

Country Status (1)

Country Link
CN (1) CN108234122B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109104417A (zh) * 2018-07-24 2018-12-28 成都安恒信息技术有限公司 一种运用于运维审计系统的用户鉴权和选路方法
CN110830493A (zh) * 2019-11-14 2020-02-21 北京京航计算通讯研究所 基于智慧企业门户的单点登录实现方法
CN112422477A (zh) * 2019-08-21 2021-02-26 普天信息技术有限公司 服务认证方法、服务端、电子设备和存储介质
CN112953719A (zh) * 2019-11-26 2021-06-11 北京京东尚科信息技术有限公司 一种令牌认证方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764806A (zh) * 2009-12-31 2010-06-30 卓望数码技术(深圳)有限公司 一种单点登录方法、系统以及登录服务平台
CN104036399A (zh) * 2014-06-20 2014-09-10 上海动联信息技术股份有限公司 一种基于条码扫描与动态密码的真伪鉴别方法
CN104486328A (zh) * 2014-12-10 2015-04-01 小米科技有限责任公司 访问控制方法和装置
CN105450587A (zh) * 2014-07-28 2016-03-30 国际商业机器公司 用于保护网络通信安全的方法和装置
US20160226879A1 (en) * 2014-05-30 2016-08-04 Oracle International Corporation Authorization token cache system and method
CN105978682A (zh) * 2016-06-27 2016-09-28 武汉斗鱼网络科技有限公司 移动端令牌生成系统及其判断登录用户身份的方法
US20160285871A1 (en) * 2015-03-27 2016-09-29 Oracle International Corporation Declarative techniques for transaction-specific authentication

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764806A (zh) * 2009-12-31 2010-06-30 卓望数码技术(深圳)有限公司 一种单点登录方法、系统以及登录服务平台
US20160226879A1 (en) * 2014-05-30 2016-08-04 Oracle International Corporation Authorization token cache system and method
CN104036399A (zh) * 2014-06-20 2014-09-10 上海动联信息技术股份有限公司 一种基于条码扫描与动态密码的真伪鉴别方法
CN105450587A (zh) * 2014-07-28 2016-03-30 国际商业机器公司 用于保护网络通信安全的方法和装置
CN104486328A (zh) * 2014-12-10 2015-04-01 小米科技有限责任公司 访问控制方法和装置
US20160285871A1 (en) * 2015-03-27 2016-09-29 Oracle International Corporation Declarative techniques for transaction-specific authentication
CN105978682A (zh) * 2016-06-27 2016-09-28 武汉斗鱼网络科技有限公司 移动端令牌生成系统及其判断登录用户身份的方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109104417A (zh) * 2018-07-24 2018-12-28 成都安恒信息技术有限公司 一种运用于运维审计系统的用户鉴权和选路方法
CN112422477A (zh) * 2019-08-21 2021-02-26 普天信息技术有限公司 服务认证方法、服务端、电子设备和存储介质
CN110830493A (zh) * 2019-11-14 2020-02-21 北京京航计算通讯研究所 基于智慧企业门户的单点登录实现方法
CN112953719A (zh) * 2019-11-26 2021-06-11 北京京东尚科信息技术有限公司 一种令牌认证方法和装置
CN112953719B (zh) * 2019-11-26 2023-03-07 北京京东尚科信息技术有限公司 一种令牌认证方法和装置

Also Published As

Publication number Publication date
CN108234122B (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
US8590030B1 (en) Credential seed provisioning system
CN106170964B (zh) 基于不同身份服务的用户虚拟身份
US9350726B2 (en) Recovery from rolling security token loss
CN107426169A (zh) 一种基于权限的业务处理方法及装置
CN110690972B (zh) 令牌认证方法、装置、电子设备及存储介质
CN108234122A (zh) 令牌校验方法和装置
CN106487744A (zh) 一种基于Redis存储的Shiro验证方法
US11995176B2 (en) Platform for generation of passwords and/or email addresses
CN107580032B (zh) 数据处理方法、装置及设备
CN114615071B (zh) 一种微服务架构下对RESTful API统一鉴权的方法
CN105072608B (zh) 一种管理认证令牌的方法及装置
CN108769063A (zh) 一种自动化检测WebLogic已知漏洞的方法及装置
CN110581835B (zh) 一种漏洞检测方法、装置及终端设备
CN107748849A (zh) 一种基于网络文件系统的权限控制方法及系统
CN110636038A (zh) 账号解析方法、装置、安全网关及系统
WO2022206439A1 (zh) 提供跨链消息的方法和装置
CN104580210A (zh) 云平台环境下的防盗链方法、防盗链组件和云平台
CN114915500B (zh) 基于pc桌面客户端的自媒体账号管理方法及装置
JP6233846B2 (ja) 可変長ノンスの生成
CN116010926A (zh) 登陆认证方法、装置、计算机设备和存储介质
CN111752964A (zh) 基于数据接口的数据处理方法及装置
CN105681291A (zh) 一种实现多客户端统一认证方法及系统
KR101745919B1 (ko) 패스워드 노출 없는 소프트웨어 방식의 hsm을 이용한 사용자 인증 방법 및 시스템
CN115001724B (zh) 网络威胁情报管理方法、装置、计算设备及计算机可读存储介质
CN110572371B (zh) 基于html5本地存储机制的身份唯一性校验控制方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant