CN111030812A - 令牌验证方法、装置、存储介质及服务器 - Google Patents
令牌验证方法、装置、存储介质及服务器 Download PDFInfo
- Publication number
- CN111030812A CN111030812A CN201911290205.7A CN201911290205A CN111030812A CN 111030812 A CN111030812 A CN 111030812A CN 201911290205 A CN201911290205 A CN 201911290205A CN 111030812 A CN111030812 A CN 111030812A
- Authority
- CN
- China
- Prior art keywords
- token
- client
- request
- database
- timestamp
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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/3213—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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 time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例公开了一种令牌验证方法、装置、存储介质及服务器,方法包括:接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌;读取所述令牌中的令牌生成时间戳,并获取当前时间戳;当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。因此,采用本申请实施例,可以降低查询数据库对令牌合法验证的频率,降低了服务器拒绝服务的风险。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种令牌验证方法、装置、存储介质及服务器。
背景技术
在某些场景下,客户端在调用服务端的服务之前,先需要提供服务器分配给该客户端的ID和Secret来进行鉴权,服务端鉴权成功后,会返回客户端一个令牌,客户端后续调用该服务端的服务端带上该令牌,服务端在确认该令牌合法后,才接受客户端的调用请求。
在判断一个令牌是否合法时,首先服务端通过查询数据库判断该令牌是否是由服务端分配,然后再判断该令牌是否过期。在此过程中,客户端每发起一次请求,服务端都需要查询一次数据库进行验证。当客户端恶意发起大量服务请求时,可能导致服务器拒绝服务。
发明内容
本申请实施例提供了一种令牌验证方法、装置、存储介质及服务器,可以降低查询数据库对令牌合法验证的频率,降低了服务器拒绝服务的风险。所述技术方案如下:
第一方面,本申请实施例提供了一种令牌验证方法,所述方法包括:
接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌;
读取所述令牌中的令牌生成时间戳,并获取当前时间戳;
当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;
若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。
第二方面,本申请实施例提供了一种令牌验证装置,所述装置包括:
令牌获取模块,用于接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌;
时间戳获取模块,用于读取所述令牌中的令牌生成时间戳,并获取当前时间戳;
令牌查找模块,用于当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;
请求执行模块,用于若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种服务器,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,服务器接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌,通过读取所述令牌中的令牌生成时间戳,并获取当前时间戳,当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,且在数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。也就是说,通过令牌自身携带的令牌生成时间戳就可以确认该令牌是否过期,并在未过期的情况下才去查询数据库该令牌的合法性,即使客户端恶意发起大量服务请求,不需要客户端每发起一次请求服务端就查询一次数据库,降低了查询数据库对令牌合法验证的频率,降低了服务器拒绝服务的风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种令牌验证方法的流程示意图;
图2是本申请实施例提供的一种令牌验证方法的流程示意图;
图3是本申请实施例提供的一种令牌验证装置的结构示意图;
图4是本申请实施例提供的一种令牌验证装置的结构示意图;
图5是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面将结合附图1-附图2,对本申请实施例提供的令牌验证方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的令牌验证装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的令牌验证装置可以为具备令牌验证功能的服务器。
请参见图1,为本申请实施例提供的一种令牌验证方法的流程示意图。如图1所示,本申请实施例的所述方法可以包括以下步骤:
S101,接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌;
客户端发起服务调用请求可通过以下三种方式:
1、通过超链接的方式
此请求属于get请求,写参数可以在后面加问号以键值对的方式向客户端传递参数,如<a href="/Optimize_progrming/Servlet01?method=add">提交请求</a>。
2、通过form表单的方式
此请求可以是post请求,也可以是get请求。
若是post请求可以在action后面加入请求参数,如<form action="/Optimize_progrming/Servlet01?method=remove"method="post">,若是get请求不能在action后面加入请求参数(若加入参数服务器接收不到参数),如<form action="/Optimize_progrming/Servlet01?method=remove"method="get">,此时,服务器接收不到remove这个实际参数。
3、通过ajax的方式
如$.post(URL,data,callback,dataType),其中,URL参数规定希望请求的URL,data参数规定连同请求发送的数据,callback参数是请求成功后所执行的函数名,dataType规定预期的服务器响应的数据类型,如xml、json、script或html。
服务器在接收到客户端采用上述任一种方式发送的服务调用请求时,读取该请求中携带的相关信息,如令牌、调用的服务、调用时间等。
其中,令牌即为Token,是在服务端产生的。客户端在调用服务前还需要使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会生成Tokend并返回给客户端。客户端可以在每次请求的时候带上Token证明自己的合法地位。相应的,这个Token在服务端持久化(比如存入数据库),那它就是一个永久的身份令牌。
Token具有如下优势:完全由应用管理,可以避开同源策略;可以避免CSRF攻击;可以是无状态的,可以在多个服务间共享。
S102,读取所述令牌中的令牌生成时间戳,并获取当前时间戳;
时间戳是一个能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
所述令牌生成时间戳为客户端发送至服务器的令牌中的时间戳,但该令牌生成时间戳并非一定是在该服务调用请求前所生成的令牌的令牌生成时间戳,这是因为,在服务器生成令牌发送至客户端的传输过程中,有可能令牌被窃取或者在到达客户端后再客户端被窃取,进而导致令牌生成时间戳被替换或更改。
当前时间戳为服务器接收到服务调用请求的时刻指示的时间戳。具体可以为在接收到服务调用请求时,读取当前时间戳。
S103,当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;
为了防止令牌被其他用户盗用,一般都会给令牌设置一个过期时间。对于所有的令牌,其有效时长均为一固定值,如5分钟。在服务器端保存Token状态,用户每次操作都会自动刷新Token的过期时间。
当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,表明该令牌还在有效时长内,未过期,还需要进一步判断该令牌是否是合法令牌。也就是在数据库中去查找是否存在该令牌。
需要说明的是,在服务器对客户端发送的账号标识和账号密码进行鉴权时,若鉴权通过,则生成令牌并将该令牌保存至数据库中。
S104,若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。
若在所述数据库中存在所述令牌,表明该令牌为合法令牌,可以接受客户端的服务调用请求,执行所述服务调用请求并向所述客户端反馈请求结果,从而完成一次服务调用。
在本申请实施例中,服务器接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌,通过读取所述令牌中的令牌生成时间戳,并获取当前时间戳,当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,且在数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。也就是说,通过令牌自身携带的令牌生成时间戳就可以确认该令牌是否过期,并在未过期的情况下才去查询数据库该令牌的合法性,即使客户端恶意发起大量服务请求,不需要客户端每发起一次请求服务端就查询一次数据库,降低了查询数据库对令牌合法验证的频率,降低了服务器拒绝服务的风险。
请参见图2,为本申请实施例提供的一种令牌验证方法的流程示意图。图2所示实施例相对于图1所示实施例的不同之处在于,强调了在服务调用前的鉴权过程、令牌过期或令牌非法的过程,该令牌验证方法可以包括以下步骤:
S201,接收客户端发送的鉴权请求,获取所述鉴权请求携带的账号标识和账号密码;
可以理解为,客户端预先向服务器发起注册请求,在注册完成后,服务器分配账号标识(用户名)及账号密码至客户端。相应的,服务器保存所分配的账号标识和账号密码至数据库中。例如,如表1所示为服务器保存的一种分配至各客户端的账号标识和账号密码映射关系表,该映射关系表存储在数据库中。
表1
| 账号标识 | 账号密码 |
| 用户名1 | 111111 |
| 用户名2 | 222222 |
| …… | …… |
| 用户名x | xxxxxx |
所述鉴权请求即为账号标识和账号密码的验证请求。即用户通过客户端进行账号登录,从而生成携带登录时输入的账号标识和账号密码的鉴权请求发送至服务器。
S202,当在数据库中存在所述账号标识且所述账号标识与所述账号密码匹配时,生成令牌;
如表1所示,首先在账号标识列中查找是否存在该账号标识,若存在,则进一步确定该账号密码与账号标识是否匹配,若匹配,确定该账号标识为服务器分配的,鉴权通过,则生成令牌。同时,服务器将该令牌保存至数据库中。如表2所示,在数据库中包括多个客户端鉴权通过时生成的令牌,可以理解为,每个令牌与账号标识相对应。
表2
| 令牌 | 账号标识 |
| 令牌1 | 用户名1 |
| 令牌2 | 用户名2 |
| …… | …… |
| 令牌x | 用户名x |
其中,令牌即为Token,是在服务端产生的。客户端在调用服务前还需要使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会生成Token并返回给客户端。客户端可以在每次请求的时候带上Token证明自己的合法地位。相应的,这个Token在服务端持久化(比如存入数据库),那它就是一个永久的身份令牌。
Token具有如下优势:完全由应用管理,可以避开同源策略;可以避免跨站请求伪造(Cross-site request forgery,CSRF)攻击;可以是无状态的,可以在多个服务间共享。
S203,对所述令牌进行加密,将加密后的所述令牌发送至所述客户端;
通常,为了防止令牌生成时间戳被破解,可对令牌进行加密,而客户端在接收到该令牌后,可采用相应的算法进行解密。
可选的,如果把所有状态信息都附加在Token上,服务器就可以不保存。但是服务端仍然需要认证Token的有效性。不过只要服务端能确认是自己签发的Token,而且其信息未被改动过,那就可以认为Token有效。通常所说的签名都存在一方签发,另一方验证的情况,所以要使用非对称加密算法。但在此处,签发和验证都是同一方,所以对称加密算法就能达到要求,而对称算法比非对称算法要快得多
S204,接收所述客户端在接收到所述令牌时发送的服务调用请求,获取所述服务调用请求携带的令牌;
客户端发起服务调用请求可通过超链接的方式、form表单的方式或ajax的方式。服务器在接收到客户端采用上述任一种方式发送的服务调用请求时,读取该请求中携带的相关信息,如令牌、调用的服务、调用时间等。
S205,读取所述令牌中的令牌生成时间戳,并获取当前时间戳;
时间戳是一个能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
所述令牌生成时间戳为客户端发送至服务器的令牌中的时间戳,但该令牌生成时间戳并非一定是在该服务调用请求前所生成的令牌的令牌生成时间戳,这是因为,在服务器生成令牌发送至客户端的传输过程中,有可能令牌被窃取或者在到达客户端后再客户端被窃取,进而导致令牌生成时间戳被替换或更改。
当前时间戳为服务器接收到服务调用请求的时刻指示的时间戳。具体可以为在接收到服务调用请求时,读取当前时间戳。
S206,当所述令牌生成时间戳与所述当前时间戳之间的时间差大于所述有效时长时,向所述客户端反馈令牌过期的提示信息;
对于所有的令牌,其有效时长(过期时长)均为一固定值,如5分钟。
服务端从token中解析出时间戳,将该时间戳与系统当前时间做差值,如果差值超出过期时间,则认为该token过期,并向所述客户端反馈令牌过期的提示信息,以告知用户在服务调用过程中,令牌过期,当前次服务调用失败,需要重新申请令牌。
S207,当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;
当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,表明该令牌还在有效时长内,未过期,还需要进一步判断该令牌是否是合法令牌。也就是在数据库中去查找是否存在该令牌。
S208,若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果;
若在所述数据库中存在所述令牌,表明该令牌为合法令牌,可以接受客户端的服务调用请求,执行所述服务调用请求并向所述客户端反馈请求结果,从而完成一次服务调用。
S209,若在所述数据库中不存在所述令牌,则向所述客户端反馈令牌非法的提示信息。
当在表2中未查找到令牌时,表明该令牌不是服务器生成的,确认该令牌非法,并向所述客户端反馈令牌非法的提示信息,以告知用户在服务调用过程中,令牌存在被篡改的风险,当前次服务调用失败。
在本申请实施例中,服务器接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌,通过读取所述令牌中的令牌生成时间戳,并获取当前时间戳,当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,且在数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。也就是说,通过令牌自身携带的令牌生成时间戳就可以确认该令牌是否过期,并在未过期的情况下才去查询数据库该令牌的合法性,即使客户端恶意发起大量服务请求,不需要客户端每发起一次请求服务端就查询一次数据库,降低了查询数据库对令牌合法验证的频率,降低了服务器拒绝服务的风险。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图3,其示出了本申请一个示例性实施例提供的令牌验证装置的结构示意图。该令牌验证装置可以通过软件、硬件或者两者的结合实现成为服务器的全部或一部分。该装置1包括令牌获取模块10、时间戳获取模块20、令牌查找模块30和请求执行模块40。
令牌获取模块10,用于接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌;
时间戳获取模块20,用于读取所述令牌中的令牌生成时间戳,并获取当前时间戳;
令牌查找模块30,用于当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;
请求执行模块40,用于若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。
可选的,如图4所示,所述装置还包括:
过期信息发送模块50,用于当所述令牌生成时间戳与所述当前时间戳之间的时间差大于所述有效时长时,向所述客户端反馈令牌过期的提示信息。
可选的,如图4所示,所述装置还包括:
非法信息发送模块60,用于若在所述数据库中不存在所述令牌,则向所述客户端反馈令牌非法的提示信息。
可选的,如图4所示,所述装置还包括:
账号信息获取模块70,用于接收客户端发送的鉴权请求,获取所述鉴权请求携带的账号令牌和账号密码;
令牌发送模块80,用于当在数据库中存在所述账号令牌且所述账号令牌与所述账号密码匹配时,生成令牌,并将所述令牌发送至所述客户端。
所述令牌获取模块10,具体用于:
接收所述客户端在接收到所述令牌时发送的服务调用请求,获取所述服务调用请求携带的令牌。
可选的,所述令牌获取模块10,具体用于:
对所述令牌进行加密,将加密后的所述令牌发送至所述客户端。
需要说明的是,上述实施例提供的令牌验证装置在执行令牌验证方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的令牌验证装置与令牌验证处理方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,服务器接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌,通过读取所述令牌中的令牌生成时间戳,并获取当前时间戳,当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,且在数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。也就是说,通过令牌自身携带的令牌生成时间戳就可以确认该令牌是否过期,并在未过期的情况下才去查询数据库该令牌的合法性,即使客户端恶意发起大量服务请求,不需要客户端每发起一次请求服务端就查询一次数据库,降低了查询数据库对令牌合法验证的频率,降低了服务器拒绝服务的风险。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图2所示实施例的方法步骤,具体执行过程可以参见图1-图2所示实施例的具体说明,在此不进行赘述。
请参见图5,为本申请实施例提供了一种服务器的结构示意图。如图5所示,所述服务器1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及令牌验证应用程序。
在图5所示的服务器1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的令牌验证应用程序,并具体执行以下操作:
接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌;
读取所述令牌中的令牌生成时间戳,并获取当前时间戳;
当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;
若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。
在一个实施例中,所述处理器1001还执行以下操作:
当所述令牌生成时间戳与所述当前时间戳之间的时间差大于所述有效时长时,向所述客户端反馈令牌过期的提示信息。
在一个实施例中,所述处理器1001还执行以下操作:
若在所述数据库中不存在所述令牌,则向所述客户端反馈令牌非法的提示信息。
在一个实施例中,所述处理器1001在执行接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌之前,还执行以下操作:
接收客户端发送的鉴权请求,获取所述鉴权请求携带的账号标识和账号密码;
当在数据库中存在所述账号标识且所述账号标识与所述账号密码匹配时,生成令牌,并将所述令牌发送至所述客户端;
所述处理器1001在执行接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌时,具体执行以下操作:
接收所述客户端在接收到所述令牌时发送的服务调用请求,获取所述服务调用请求携带的令牌。
在一个实施例中,所述处理器1001在执行将所述令牌发送至所述客户端时,具体执行以下操作:
对所述令牌进行加密,将加密后的所述令牌发送至所述客户端。
在本申请实施例中,服务器接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌,通过读取所述令牌中的令牌生成时间戳,并获取当前时间戳,当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,且在数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。也就是说,通过令牌自身携带的令牌生成时间戳就可以确认该令牌是否过期,并在未过期的情况下才去查询数据库该令牌的合法性,即使客户端恶意发起大量服务请求,不需要客户端每发起一次请求服务端就查询一次数据库,降低了查询数据库对令牌合法验证的频率,降低了服务器拒绝服务的风险。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种令牌验证方法,其特征在于,所述方法包括:
接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌;
读取所述令牌中的令牌生成时间戳,并获取当前时间戳;
当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;
若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述令牌生成时间戳与所述当前时间戳之间的时间差大于所述有效时长时,向所述客户端反馈令牌过期的提示信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在所述数据库中不存在所述令牌,则向所述客户端反馈令牌非法的提示信息。
4.根据权利要求1所述的方法,其特征在于,所述接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌之前,还包括:
接收客户端发送的鉴权请求,获取所述鉴权请求携带的账号标识和账号密码;
当在数据库中存在所述账号标识且所述账号标识与所述账号密码匹配时,生成令牌,并将所述令牌发送至所述客户端;
所述接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌,包括:
接收所述客户端在接收到所述令牌时发送的服务调用请求,获取所述服务调用请求携带的令牌。
5.根据权利要求4所述的方法,其特征在于,所述将所述令牌发送至所述客户端,包括:
对所述令牌进行加密,将加密后的所述令牌发送至所述客户端。
6.一种令牌验证装置,其特征在于,所述装置包括:
令牌获取模块,用于接收客户端发送的服务调用请求,获取所述服务调用请求携带的令牌;
时间戳获取模块,用于读取所述令牌中的令牌生成时间戳,并获取当前时间戳;
令牌查找模块,用于当所述令牌生成时间戳与所述当前时间戳之间的时间差小于或者等于有效时长时,在数据库中查找是否存在所述令牌;
请求执行模块,用于若在所述数据库中存在所述令牌,则执行所述服务调用请求并向所述客户端反馈请求结果。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
过期信息发送模块,用于当所述令牌生成时间戳与所述当前时间戳之间的时间差大于所述有效时长时,向所述客户端反馈令牌过期的提示信息。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
非法信息发送模块,用于若在所述数据库中不存在所述令牌,则向所述客户端反馈令牌非法的提示信息。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~5任意一项的方法步骤。
10.一种服务器,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~5任意一项的方法步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911290205.7A CN111030812A (zh) | 2019-12-16 | 2019-12-16 | 令牌验证方法、装置、存储介质及服务器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911290205.7A CN111030812A (zh) | 2019-12-16 | 2019-12-16 | 令牌验证方法、装置、存储介质及服务器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111030812A true CN111030812A (zh) | 2020-04-17 |
Family
ID=70209104
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911290205.7A Pending CN111030812A (zh) | 2019-12-16 | 2019-12-16 | 令牌验证方法、装置、存储介质及服务器 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111030812A (zh) |
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111431726A (zh) * | 2020-06-11 | 2020-07-17 | 深圳市友杰智新科技有限公司 | 算法授权方法、装置、计算机设备和存储介质 |
| CN112235277A (zh) * | 2020-10-09 | 2021-01-15 | 北京达佳互联信息技术有限公司 | 资源请求方法、资源响应方法及相关设备 |
| CN112261008A (zh) * | 2020-09-27 | 2021-01-22 | 苏州浪潮智能科技有限公司 | 一种基于临时令牌的鉴权方法、客户端、和服务器 |
| CN112416964A (zh) * | 2020-11-17 | 2021-02-26 | 深圳依时货拉拉科技有限公司 | 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质 |
| CN112437071A (zh) * | 2020-11-17 | 2021-03-02 | 珠海格力电器股份有限公司 | 设备控制的方法、系统、设备及存储介质 |
| CN112437046A (zh) * | 2020-11-05 | 2021-03-02 | 中国人寿保险股份有限公司 | 防止重放攻击的通信方法、系统、电子设备及存储介质 |
| CN112491996A (zh) * | 2020-11-18 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种生成服务请求的方法及装置 |
| CN113765819A (zh) * | 2020-09-01 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 资源访问方法、装置、电子设备及存储介质 |
| CN113872974A (zh) * | 2021-09-29 | 2021-12-31 | 深圳市微购科技有限公司 | 网络会话加密的方法、服务器和计算机可读存储介质 |
| CN113946811A (zh) * | 2021-10-20 | 2022-01-18 | 工银科技有限公司 | 鉴权认证方法及装置 |
| CN114064735A (zh) * | 2021-11-30 | 2022-02-18 | 深圳市优必选科技股份有限公司 | 请求处理方法、装置、计算机设备及计算机可读存储介质 |
| CN114143027A (zh) * | 2021-10-27 | 2022-03-04 | 北京达佳互联信息技术有限公司 | 验证码令牌的验证方法、装置、电子设备及存储介质 |
| CN114938352A (zh) * | 2022-05-19 | 2022-08-23 | 中国银行股份有限公司 | 一种图片上传方法、服务端、客户端及系统 |
| CN116561223A (zh) * | 2023-04-28 | 2023-08-08 | 杭州安恒信息技术股份有限公司 | 一种基于分布式锁的数据存储方法、装置和计算机设备 |
| CN118540169A (zh) * | 2024-07-26 | 2024-08-23 | 成都云祺科技有限公司 | Api安全实现方法、系统、介质及api框架实现方法 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2512091A1 (en) * | 2011-04-11 | 2012-10-17 | Research In Motion Limited | Mitigation of application-level distributed denial-of-service attacks |
| CN104821937A (zh) * | 2015-03-26 | 2015-08-05 | 腾讯科技(北京)有限公司 | 令牌获取方法、装置及系统 |
| CN106302346A (zh) * | 2015-05-27 | 2017-01-04 | 阿里巴巴集团控股有限公司 | Api调用的安全认证方法、装置、系统 |
| CN108183907A (zh) * | 2017-12-29 | 2018-06-19 | 浪潮通用软件有限公司 | 一种认证方法、服务器及认证系统 |
| CN109309683A (zh) * | 2018-10-30 | 2019-02-05 | 泰华智慧产业集团股份有限公司 | 基于token的客户端身份验证的方法及系统 |
| CN109639730A (zh) * | 2019-01-21 | 2019-04-16 | 北京工业大学 | 基于令牌的http无状态协议下信息系统数据接口认证方法 |
-
2019
- 2019-12-16 CN CN201911290205.7A patent/CN111030812A/zh active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2512091A1 (en) * | 2011-04-11 | 2012-10-17 | Research In Motion Limited | Mitigation of application-level distributed denial-of-service attacks |
| CN104821937A (zh) * | 2015-03-26 | 2015-08-05 | 腾讯科技(北京)有限公司 | 令牌获取方法、装置及系统 |
| CN106302346A (zh) * | 2015-05-27 | 2017-01-04 | 阿里巴巴集团控股有限公司 | Api调用的安全认证方法、装置、系统 |
| CN108183907A (zh) * | 2017-12-29 | 2018-06-19 | 浪潮通用软件有限公司 | 一种认证方法、服务器及认证系统 |
| CN109309683A (zh) * | 2018-10-30 | 2019-02-05 | 泰华智慧产业集团股份有限公司 | 基于token的客户端身份验证的方法及系统 |
| CN109639730A (zh) * | 2019-01-21 | 2019-04-16 | 北京工业大学 | 基于令牌的http无状态协议下信息系统数据接口认证方法 |
Cited By (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111431726B (zh) * | 2020-06-11 | 2020-09-18 | 深圳市友杰智新科技有限公司 | 算法授权方法、装置、计算机设备和存储介质 |
| CN111431726A (zh) * | 2020-06-11 | 2020-07-17 | 深圳市友杰智新科技有限公司 | 算法授权方法、装置、计算机设备和存储介质 |
| CN113765819A (zh) * | 2020-09-01 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 资源访问方法、装置、电子设备及存储介质 |
| CN113765819B (zh) * | 2020-09-01 | 2024-12-10 | 北京沃东天骏信息技术有限公司 | 资源访问方法、装置、电子设备及存储介质 |
| CN112261008A (zh) * | 2020-09-27 | 2021-01-22 | 苏州浪潮智能科技有限公司 | 一种基于临时令牌的鉴权方法、客户端、和服务器 |
| CN112235277A (zh) * | 2020-10-09 | 2021-01-15 | 北京达佳互联信息技术有限公司 | 资源请求方法、资源响应方法及相关设备 |
| CN112437046A (zh) * | 2020-11-05 | 2021-03-02 | 中国人寿保险股份有限公司 | 防止重放攻击的通信方法、系统、电子设备及存储介质 |
| CN112437046B (zh) * | 2020-11-05 | 2023-04-28 | 中国人寿保险股份有限公司 | 防止重放攻击的通信方法、系统、电子设备及存储介质 |
| CN112437071A (zh) * | 2020-11-17 | 2021-03-02 | 珠海格力电器股份有限公司 | 设备控制的方法、系统、设备及存储介质 |
| CN112437071B (zh) * | 2020-11-17 | 2023-05-16 | 珠海格力电器股份有限公司 | 设备控制的方法、系统、设备及存储介质 |
| CN112416964A (zh) * | 2020-11-17 | 2021-02-26 | 深圳依时货拉拉科技有限公司 | 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质 |
| CN112491996B (zh) * | 2020-11-18 | 2022-08-12 | 深圳前海微众银行股份有限公司 | 一种生成服务请求的方法及装置 |
| CN112491996A (zh) * | 2020-11-18 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种生成服务请求的方法及装置 |
| CN113872974A (zh) * | 2021-09-29 | 2021-12-31 | 深圳市微购科技有限公司 | 网络会话加密的方法、服务器和计算机可读存储介质 |
| CN113946811A (zh) * | 2021-10-20 | 2022-01-18 | 工银科技有限公司 | 鉴权认证方法及装置 |
| CN114143027A (zh) * | 2021-10-27 | 2022-03-04 | 北京达佳互联信息技术有限公司 | 验证码令牌的验证方法、装置、电子设备及存储介质 |
| CN114064735A (zh) * | 2021-11-30 | 2022-02-18 | 深圳市优必选科技股份有限公司 | 请求处理方法、装置、计算机设备及计算机可读存储介质 |
| CN114938352A (zh) * | 2022-05-19 | 2022-08-23 | 中国银行股份有限公司 | 一种图片上传方法、服务端、客户端及系统 |
| CN116561223A (zh) * | 2023-04-28 | 2023-08-08 | 杭州安恒信息技术股份有限公司 | 一种基于分布式锁的数据存储方法、装置和计算机设备 |
| CN118540169A (zh) * | 2024-07-26 | 2024-08-23 | 成都云祺科技有限公司 | Api安全实现方法、系统、介质及api框架实现方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111030812A (zh) | 令牌验证方法、装置、存储介质及服务器 | |
| CN111556006B (zh) | 第三方应用系统登录方法、装置、终端及sso服务平台 | |
| US12250209B2 (en) | Network identity protection method and device, and electronic equipment and storage medium | |
| US20200320222A1 (en) | Information management method, apparatus, and information management system | |
| JP6574168B2 (ja) | 端末識別方法、ならびにマシン識別コードを登録する方法、システム及び装置 | |
| CN103618717B (zh) | 多账户客户信息的动态认证方法、装置和系统 | |
| CN105991614B (zh) | 一种开放授权、资源访问的方法及装置、服务器 | |
| US9009793B2 (en) | Dynamic pin dual factor authentication using mobile device | |
| CN102217280B (zh) | 用户业务鉴权方法、系统及服务器 | |
| US10630574B2 (en) | Link processing method, apparatus, and system | |
| CN110417730B (zh) | 多应用程序的统一接入方法及相关设备 | |
| US20140053251A1 (en) | User account recovery | |
| CN111431920A (zh) | 一种基于动态令牌的安全控制方法及系统 | |
| CN112688773A (zh) | 一种令牌的生成和校验方法及装置 | |
| CN111444551B (zh) | 账户的注册与登录方法、装置、电子设备及可读存储介质 | |
| CN104954330A (zh) | 一种对数据资源进行访问的方法、装置和系统 | |
| CN106779716A (zh) | 基于区块链账户地址的认证方法、装置及系统 | |
| TW202312054A (zh) | 一種綁卡方法、使用者終端、伺服器、系統及存儲介質 | |
| CN109936579A (zh) | 单点登录方法、装置、设备及计算机可读存储介质 | |
| CN105701423A (zh) | 应用于云端支付业务的数据存储方法及装置 | |
| CN106254319B (zh) | 一种轻应用登录控制方法和装置 | |
| CN106331003A (zh) | 一种云桌面上应用门户系统的访问方法及装置 | |
| CN118214586A (zh) | 一种身份认证方法、系统、设备及存储介质 | |
| CN112231674A (zh) | 一种url地址的跳转验证方法、系统及电子设备 | |
| CN109829321B (zh) | 一种认证身份的方法、装置、设备及存储介质 |
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 | ||
| RJ01 | Rejection of invention patent application after publication | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200417 |