CN107483509B - 一种身份验证方法、服务器及可读存储介质 - Google Patents
一种身份验证方法、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN107483509B CN107483509B CN201710929542.0A CN201710929542A CN107483509B CN 107483509 B CN107483509 B CN 107483509B CN 201710929542 A CN201710929542 A CN 201710929542A CN 107483509 B CN107483509 B CN 107483509B
- Authority
- CN
- China
- Prior art keywords
- token
- application program
- access registrar
- server
- access
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000006870 function Effects 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 20
- 241000406668 Loxodonta cyclotis Species 0.000 claims 1
- 238000009434 installation Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010025 steaming Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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
-
- 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/3236—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 using cryptographic hash functions
Abstract
本发明实施例提供了一种身份验证方法、服务器及可读存储介质,用于防止服务器的功能接口被恶意调用,提高服务器端资源的安全性。所述方法应用于第一应用程序的服务器,包括:获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,基于所述第二应用程序对应的规则生成的访问认证令牌;基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种身份验证方法、服务器及可读存储介质。
背景技术
应用程序的小程序功能是一种不需要下载安装其他应用程序即可使用其他应用程序的功能,用户可以通过扫一扫或搜一下即可打开其他应用程序。比如:微信应用程序中的小程序可以通过搜索应用程序A后,用户即可通过微信应用程序的小程序开启应用程序A。其他应用程序进行小程序开发时,必须适配小程序功能所属的应用程序的API(Application Programming Interface,应用程序编程接口)规则,进行用户身份验证。由于API规则对于开发者是公开的,采用这样的用户身份验证方式可能会导致通过小程序功能登录至的其他应用程序的服务器的功能接口被恶意调用,服务器端的资源的安全性得不到保障。
发明内容
本发明实施例提供了一种身份验证方法、服务器及可读存储介质,用于防止服务器的功能接口被恶意调用,提高服务器端资源的安全性。
第一方面,本发明提供了一种身份验证方法,应用于第一应用程序的服务器,包括:
获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,基于所述第二应用程序对应的规则生成的访问认证令牌;
基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;
在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
可选的,所述将所述第一访问认证令牌转换为第二访问认证令牌,包括:
获取所述第一应用程序对应的密钥;
基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌。
可选的,所述基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌,包括:
生成预设字符串,所述预设字符串包含所述第一访问认证令牌、时间戳以及所述密钥;
基于哈希算法对所述预设字符串进行加密处理,生成第二访问认证令牌,所述第二访问认证令牌为基于哈希算法对所述预设字符串进行加密处理后生成的与所述预设字符串对应的散列值。
可选的,在所述将所述第一访问认证令牌转换为第二访问认证令牌之后,所述方法还包括:
获取所述第一访问认证令牌的第一有效期;
基于所述第一有效期,确定所述第二访问认证令牌的第二有效期,所述第二有效期短于所述第一有效期;
在距所述第二有效期截止前的预设时间范围内更新所述第二访问认证令牌。
可选的,所述基于所述第二访问认证令牌,对请求对象的身份进行验证,包括:
判断所述请求对象对应的访问认证令牌与所述第二访问认证令牌是否匹配,如果否,确定身份验证失败;
如果是,判断所述第二访问认证令牌的第二有效期是否超期,如果超期,确定身份验证失败,如果未超期,确定身份验证成功。
可选的,所述第一应用程序为直播应用程序,所述第二应用程序为微信应用程序,所述功能接口包括获取直播列表接口和/或获取直播流接口。
第二方面,本发明提供了一种服务器,所述服务器与第一应用程序对应,所述服务器包括:
获取单元,用于申请获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,所述服务器向所述第二应用程序申请的基于所述第二应用程序对应规则生成的访问认证令牌;
转换单元,用于基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;
身份验证单元,用于在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
可选的,所述转换单元包括:
获取模块,用于获取所述第一应用程序对应的密钥;
加密模块,用于基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌。
可选的,所述加密模块包括:
生成子模块,用于生成预设字符串,所述预设字符串包含所述第一访问认证令牌、时间戳以及所述密钥;
加密子模块,用于基于哈希算法对所述预设字符串进行加密处理,生成第二访问认证令牌,所述第二访问认证令牌为基于哈希算法对所述预设字符串进行加密处理后生成的与所述预设字符串对应的散列值。
可选的,所述服务器还包括:
更新单元,用于获取所述第一访问认证令牌的第一有效期;基于所述第一有效期,确定所述第二访问认证令牌的第二有效期,所述第二有效期短于所述第一有效期;在距所述第二有效期截止前的预设时间范围内更新所述第二访问认证令牌。
可选的,所述身份验证单元包括:
第一判断模块,用于判断所述请求对象对应的访问认证令牌与所述第二访问认证令牌是否匹配,如果否,确定身份验证失败;
第二判断模块,用于如果所说第一判断模块的判断结果为是时,判断所述第二访问认证令牌的第二有效期是否超期,如果超期,确定身份验证失败,如果未超期,确定身份验证成功。
可选的,所述第一应用程序为直播应用程序,所述第二应用程序为微信应用程序,所述功能接口包括获取直播列表接口和/或获取直播流接口。
第三方面,本发明提供了一种服务器,所述服务器包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前述第一方面实施例中所述的身份验证方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述第一方面实施例中所述的身份验证方法的步骤。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明实施例的技术方案中,第一应用程序对应的服务器获取采用第二应用程序小程序功能时生成的第一token(访问认证令牌),第一token为基于第一应用程序的API规则生成的token,基于第二应用程序的身份验证规则,将第一token转换为第二token。所以,在当检测到请求第一应用程序服务器的功能接口时,可以基于第二token对请求对象的身份进行验证。由于第二 token是基于第一应用程序的身份验证规则生成的,该规则是非公开的,第二 token不易被伪造,所以服务器可以基于第二token对调用功能接口的请求者进行身份验证。能够有效防止服务器的功能接口被恶意调用,提高服务器端资源的安全性。
附图说明
图1为本发明第一实施例中的一种身份验证方法的流程图;
图2为本发明第二实施例中的服务器的示意图;
图3为本发明第三实施例中的服务器的示意图。
具体实施方式
本发明实施例提供了一种身份验证方法、服务器及可读存储介质,用于防止服务器的功能接口被恶意调用,提高服务器端资源的安全性。所述方法包括:获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,基于所述第二应用程序对应的规则生成的访问认证令牌;基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例
请参考图1,本发明第一实施例提供一种身份验证方法,应用于第一应用程序的服务器,该身份验证方法包括如下步骤:
S101:申请获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,所述服务器向所述第二应用程序申请的基于所述第二应用程序对应规则生成的访问认证令牌;
S102:基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;
S103:在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
具体的,在本实施例中,该身份验证方法应用于服务器,该服务器为第一应用程序对应的服务器。第一应用程序支持第二应用程序的小程序功能,当用户通过第二应用程序的小程序功能登录第一应用程序时,第一应用程序的服务器向第二 应用程序申请基于第二应用程序的API规则生成的第一 token,比如:第二应用程序是微信应用程序时,在用户通过微信应用程序中的小程序功能登录至第一应用程序时,服务器需要向微信应用程序申请第一token,在申请第一token时,服务器使用开发者账号去请求微信应用程序登录接口,获取code(登录凭证),然后把code和appid(小程序id),appSecret (小程序密钥)作为参数,请求微信登录凭证接口,获取登陆token,该登陆 token即为第一token。
现有技术中,服务器是直接基于第一token对请求功能接口的请求对象进行身份验证,但由于第二应用程序的API规则对于小程序的开发者是公开的,当第一应用程序对应的开发者账户被泄漏时,第三方可以利用盗取到的开发者账户和第二应用程序的API规则生成第一token,进而利用该第一token恶意调用第一服务器的功能接口。
所以,本实施例的身份认证方法,在通过第二应用程序的小程序登录第一应用程序时,服务器申请获得基于第二应用程序的规则生成的第一token 后,基于第一应用程序的身份验证规则,将第一token转换为第二token,第二token会发送给第二应用程序,第二应用程序可通过该第二token调用服务器的各功能接口。而对于恶意调用者,由于第一应用程序的身份验证规则是非公开的,即使第一应用程序对应的开发者账户泄漏,恶意调用者伪装出第一token,却无法转换得到第二token,所以服务器基于第二token进行身份验证,可以有效防止功能接口被恶意调用,确保了服务器中资源的安全性。
进一步地,本实施例中,步骤S102:基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌,可通过如下步骤实现:
获取所述第一应用程序对应的密钥;
基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌。
具体的,在本实施例中,服务器在将第一token转换为符合自身身份验证规则的第二token时,需要获取第一应用程序对应的密钥,该密钥仅由第一应用程序方提供,为非公开的密钥,基于该密钥,对第一token进行加密处理,加密的方式可以预先约定,比如:哈希算法、对称加密算法或非对称加密法等。在进行加密处理后,生成第二token。由于密钥是由第一应用程序提供的,所以生成的第二token较难被解密出来,采用第二token对请求服务器的功能接口的请求者进行身份验证,可以避免功能接口被恶意调用,确保服务器资源的安全性。
进一步,在本实施例中,基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌,在具体实施过程中可通过如下步骤实现:
生成预设字符串,所述预设字符串包含所述第一访问认证令牌、时间戳以及所述密钥;
基于哈希算法对所述预设字符串进行加密处理,生成第二访问认证令牌,所述第二访问认证令牌为基于哈希算法对所述预设字符串进行加密处理后生成的与所述预设字符串对应的散列值。
具体的,在本实施例中,可以采用哈希算法对第一token进行加密处理。首先,拼接出预设字符串,该字符串为“第一token+时间戳+密钥”,然后使用MD5(Message-DigestAlgorithm 5,信息摘要算法5)哈希算法生成该字符串的散列值。这个散列值即为第二token。当然,在具体实施过程中,还可以根据实际需要采用其他加密算法进行加密处理,在此,本申请不做限制。
进一步,为了确保第二token的有效性,本实施例中的身份验证方法,在步骤:将所述第一访问认证令牌转换为第二访问认证令牌之后,所述方法还包括如下步骤:
获取所述第一访问认证令牌的第一有效期;
基于所述第一有效期,确定所述第二访问认证令牌的第二有效期,所述第二有效期短于所述第一有效期;
在距所述第二有效期截止前的预设时间范围内更新所述第二访问认证令牌。
具体的,在本实施例中,在将第一token转换为第二token后,需要设定第二token的有效期。此时,需要首先获取第一token的有效期,设定的第二 token的有效期短于第一token的有效期,才能确保第二token的有效性。比如:第二应用程序是微信应用程序,微信应用程序对应的第一token的有效期为3小时,可将第一应用程序对应的第二token的有效期设置为2小时。在具体实施过程中,第二token的有效期可根据实际需要进行设定,在此,本申请不做限制。
进一步,在距第二token的有效期截止前的预设时间范围内更新第二 token。比如:第二token的有效期设置为2小时,在距第二token的有效期截止前的5分钟内更新第二token。更新第二token时,需要重新申请获得基于第二应用程序API规则生成的新的第一token,在将新的第一token重新转换为第二token,以完成更新,更新后的第二token的有效期需要基于新的第一 token的有效期重新确定,确定方式如上所述,在此不做赘述。服务器将更新后的第二token发送给第二应用程序,第二应用程序基于更新后的第二token 请求服务器的功能接口,由于第二token可在有效期截止前进行更新,确保了第二token的有效性。
进一步,在本实施例中,步骤S103:基于所述第二访问认证令牌,对请求对象的身份进行验证,可通过如下步骤实现:
判断所述请求对象对应的访问认证令牌与所述第二访问认证令牌是否匹配,如果否,确定身份验证失败;
如果是,判断所述第二访问认证令牌的第二有效期是否超期,如果超期,确定身份验证失败,如果未超期,确定身份验证成功。
具体的,在本实施例中,服务器将转换后的第二token保存至本地内存中进行维护,当检测到请求服务器端的功能接口时,需要获得请求对象的token,判断请求对象的token是否与第二token匹配,如果不匹配,则身份验证失败,服务器不响应该请求。如果匹配,还需要判断第二token的有效期是否超期,如果超期,则身份验证失败,服务器不响应该请求。如果第二token的有效期没有超期,则确定身份验证成功,服务器响应该请求,同意请求对象调用对应的功能接口。这样,服务器仅会响应符合第一应用程序身份验证规则的,且在有效期内的请求对象的token,能有效防止功能端口被恶意调用,确保资源不被盗用。
进一步,本实施例的身份验证方法可应用于直播应用程序的服务器,为了防止存储在直播应用程序服务器的视频流,直播列表等资源不被盗用,直播列表接口和/或获取直播流接口等功能接口的调用需要采用直播应用程序定义的身份验证规则进行身份验证,当用户采用微信应用程序的小程序功能登录直播应用程序的视频时,直播应用程序服务器首先申请获得基于微信应用程序API规则生成的第一token后,将第一token转换为符合直播应用程序身份验证规则的第二token,并将第二token反馈给微信应用程序,第二token 的有效期短于第一token,在第二token的有效期内,在通过微信应用程序的小程序登录至直播应用程序期间,微信应用程序均可采用第二token调用服务器的功能端口。
当用户退出直播应用程序后,重新通过微信应用程序登录直播应用程序时,服务器针对本次登录,会按照前述方式一样,向微信应用程序申请获得第一token,该第一token和上一次登陆对应的第一token不同,然后基于直播应用程序的身份验证规则,将第一token转换为第二token后,反馈第二token 至微信应用程序,微信应用程序在本次登录至直播应用程序期间均使用该第二token调用服务器的功能接口。
用户每次通过微信应用程序的小程序登录直播应用程序时对应的第一 token均不相同,进而每次转换得到的第二token也不同,在每一次登录期间,采用当次转换得到的第二token进行身份验证,调用服务器功能接口的请求者发送的token必须与第二token匹配,并且第二token必须在有效期内,才会成功通过验证,观看到直播视频。而对于恶意利用微信应用程序token来盗用直播视频时,由于盗用者无法获取到第二token,所以无法调用到直播应用程序服务器的视频流接口。所以,本实施例中的身份验证方法能够有效防止直播应用程序服务器的功能接口被恶意调用,防止视频、直播列表等资源被盗用。
请参见图2,本发明的第二实施例提供了一种服务器,所述服务器与第一应用程序对应,所述服务器包括:
获取单元201,用于申请获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,所述服务器向所述第二应用程序申请的基于所述第二应用程序对应规则生成的访问认证令牌;
转换单元202,用于基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;
身份验证单元203,用于在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
具体的,在本实施例中,该身份验证方法应用于服务器,该服务器为第一应用程序对应的服务器。第一应用程序支持第二应用程序的小程序功能,当用户通过第二应用程序的小程序功能登录第一应用程序时,第一应用程序的服务器的获取单元201向第二 应用程序申请基于第二应用程序的API规则生成的第一token,比如:第二应用程序是微信应用程序时,在用户通过微信应用程序中的小程序功能登录至第一应用程序时,获取单元201需要向微信应用程序申请第一token,在申请第一token时,获取单元201使用开发者账号去请求微信应用程序登录接口,获取code(登录凭证),然后把code和appid (小程序id),appSecret(小程序密钥)作为参数,请求微信登录凭证接口,获取登陆token,该登陆token即为第一token。
现有技术中,服务器是直接基于第一token对请求功能接口的请求对象进行身份验证,但由于第二应用程序的API规则对于小程序的开发者是公开的,当第一应用程序对应的开发者账户被泄漏时,第三方可以利用盗取到的开发者账户和第二应用程序的API规则生成第一token,进而利用该第一token恶意调用第一服务器的功能接口。
所以,本实施例的身份认证方法,在通过第二应用程序的小程序登录第一应用程序时,获取单元201申请获得基于第二应用程序的规则生成的第一 token后,转换单元202基于第一应用程序的身份验证规则,将第一token转换为第二token,身份验证单元203基于该第二token对请求功能接口的请求者进行身份验证,第二token会发送给第二应用程序,第二应用程序可通过该第二token调用服务器的各功能接口。而对于恶意调用者,由于第一应用程序的身份验证规则是非公开的,即使第一应用程序对应的开发者账户泄漏,恶意调用者伪装出第一token,却无法转换得到第二token,所以服务器基于第二token进行身份验证,可以有效防止功能接口被恶意调用,确保了服务器中资源的安全性。
进一步,所述转换单元202包括:
获取模块,用于获取所述第一应用程序对应的密钥;
加密模块,用于基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌。
具体的,在本实施例中,服务器的转换单元202在将第一token转换为符合自身身份验证规则的第二token时,获取模块需要获取第一应用程序对应的密钥,该密钥仅由第一应用程序方提供,为非公开的密钥,加密模块基于该密钥,对第一token进行加密处理,加密的方式可以预先约定,比如:哈希算法、对称加密算法或非对称加密法等。在进行加密处理后,生成第二token。由于密钥是由第一应用程序提供的,所以生成的第二token较难被解密出来,采用第二token对请求服务器的功能接口的请求者进行身份验证,可以避免功能接口被恶意调用,确保服务器资源的安全性。
进一步,在本实施例中,所述加密模块包括:
生成子模块,用于生成预设字符串,所述预设字符串包含所述第一访问认证令牌、时间戳以及所述密钥;
加密子模块,用于基于哈希算法对所述预设字符串进行加密处理,生成第二访问认证令牌,所述第二访问认证令牌为基于哈希算法对所述预设字符串进行加密处理后生成的与所述预设字符串对应的散列值。
具体的,在本实施例中,可以采用哈希算法对第一token进行加密处理。首先,生成子模块拼接出预设字符串,该字符串为“第一token+时间戳+密钥”,然后加密子模块使用MD5(Message-Digest Algorithm 5,信息摘要算法5)哈希算法生成该字符串的散列值。这个散列值即为第二token。当然,在具体实施过程中,还可以根据实际需要采用其他加密算法进行加密处理,在此,本申请不做限制。
进一步,为了确保第二token的有效性,所述服务器还包括:
更新单元,用于获取所述第一访问认证令牌的第一有效期;基于所述第一有效期,确定所述第二访问认证令牌的第二有效期,所述第二有效期短于所述第一有效期;在距所述第二有效期截止前的预设时间范围内更新所述第二访问认证令牌。
具体的,在本实施例中,在转换单元202将第一token转换为第二token 后,更新单元需要设定第二token的有效期。此时,更新单元需要首先获取第一token的有效期,设定的第二token的有效期短于第一token的有效期,才能确保第二token的有效性。比如:第二应用程序是微信应用程序,微信应用程序对应的第一token的有效期为3小时,可将第一应用程序对应的第二token 的有效期设置为2小时。在具体实施过程中,第二token的有效期可根据实际需要进行设定,在此,本申请不做限制。
进一步,在距第二token的有效期截止前的预设时间范围内,更新单元更新第二token。比如:第二token的有效期设置为2小时,在距第二token的有效期截止前的5分钟内更新第二token。更新第二token时,需要重新申请获得基于第二应用程序API规则生成的新的第一token,在将新的第一token 重新转换为第二token,以完成更新,更新后的第二token的有效期需要基于新的第一token的有效期重新确定,确定方式如上所述,在此不做赘述。服务器将更新后的第二token发送给第二应用程序,第二应用程序基于更新后的第二token请求服务器的功能接口,由于第二token可在有效期截止前进行更新,确保了第二token的有效性。
进一步,在本实施例中,所述身份验证单元203包括:
第一判断模块,用于判断所述请求对象对应的访问认证令牌与所述第二访问认证令牌是否匹配,如果否,确定身份验证失败;
第二判断模块,用于如果所说第一判断模块的判断结果为是时,判断所述第二访问认证令牌的第二有效期是否超期,如果超期,确定身份验证失败,如果未超期,确定身份验证成功。
具体的,在本实施例中,转换单元202将转换后的第二token保存至本地内存中进行维护,当检测到请求服务器端的功能接口时,身份验证单元203 需要获得请求对象的token,第一判断模块判断请求对象的token是否与第二token匹配,如果不匹配,则身份验证失败,服务器不响应该请求。如果匹配,第二判断模块还需要判断第二token的有效期是否超期,如果超期,则身份验证失败,服务器不响应该请求。如果第二token的有效期没有超期,则确定身份验证成功,服务器响应该请求,同意请求对象调用对应的功能接口。这样,服务器仅会响应符合第一应用程序身份验证规则的,且在有效期内的请求对象的token,能有效防止功能端口被恶意调用,确保资源不被盗用。
进一步,本实施例的身份验证方法可应用于直播应用程序的服务器,为了防止存储在直播应用程序服务器的视频流,直播列表等资源不被盗用,直播列表接口和/或获取直播流接口等功能接口的调用需要采用直播应用程序定义的身份验证规则进行身份验证,当用户采用微信应用程序的小程序功能登录直播应用程序的视频时,直播应用程序服务器首先申请获得基于微信应用程序API规则生成的第一token后,将第一token转换为符合直播应用程序身份验证规则的第二token,并将第二token反馈给微信应用程序,第二token 的有效期短于第一token,在第二token的有效期内,在通过微信应用程序的小程序登录至直播应用程序期间,微信应用程序均可采用第二token调用服务器的功能端口。
当用户退出直播应用程序后,重新通过微信应用程序登录直播应用程序时,服务器针对本次登录,会按照前述方式一样,向微信应用程序申请获得第一token,该第一token和上一次登陆对应的第一token不同,然后基于直播应用程序的身份验证规则,将第一token转换为第二token后,反馈第二token 至微信应用程序,微信应用程序在本次登录至直播应用程序期间均使用该第二token调用服务器的功能接口。
用户每次通过微信应用程序的小程序登录直播应用程序时对应的第一 token均不相同,进而每次转换得到的第二token也不同,在每一次登录期间,采用当次转换得到的第二token进行身份验证,调用服务器功能接口的请求者发送的token必须与第二token匹配,并且第二token必须在有效期内,才会成功通过验证,观看到直播视频。而对于恶意利用微信应用程序token来盗用直播视频时,由于盗用者无法获取到第二token,所以无法调用到直播应用程序服务器的视频流接口。所以,本实施例中的身份验证方法能够有效防止直播应用程序服务器的功能接口被恶意调用,防止视频、直播列表等资源被盗用。
如图3所示,本发明第三实施例提供了一种服务器,该实施例的服务器包括:处理器301、存储器302以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如第一实施例中身份验证方法对应的程序。所述处理器执行所述计算机程序时实现上述第一实施例中各身份验证中的步骤。或者,所述处理器执行所述计算机程序时实现上述第二实施例的服务器中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机装置中的执行过程。例如,所述计算机程序可以被分割成获取单元、转换单元、身份验证单元的功能,各单元具体功能如下:
获取单元,用于申请获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,所述服务器向所述第二应用程序申请的基于所述第二应用程序对应规则生成的访问认证令牌;
转换单元,用于基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;
身份验证单元,用于在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
所述计服务器可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图3仅仅是计算机装置的示例,并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器还可以包括输入输出设备、网络接入设备、总线等。
所称处理器301可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器302可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明第四实施例提供了一种计算机可读存储介质,其上存储有计算机程序,本发明第二实施例中的所述服务器集成的功能单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述第一实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本发明实施例的技术方案中,第一应用程序对应的服务器获取采用第二应用程序小程序功能时生成的第一token(访问认证令牌),第一token为基于第一应用程序的API规则生成的token,基于第二应用程序的身份验证规则,将第一token转换为第二token,第二token满足第一应用程序的身份验证规则。所以,在当检测到请求第一应用程序服务器的功能接口时,可以基于第二token对请求对象的身份进行验证。即,请求者对应的token必须与第二token 匹配,所以能够有效防止服务器的功能接口被恶意调用,提高服务器端资源的安全性。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种身份验证方法,应用于第一应用程序的服务器,其特征在于,包括:
申请获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,所述服务器向所述第二应用程序申请的基于所述第二应用程序对应规则生成的访问认证令牌;
基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;
在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
2.如权利要求1所述的方法,其特征在于,所述将所述第一访问认证令牌转换为第二访问认证令牌,包括:
获取所述第一应用程序对应的密钥;
基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌。
3.如权利要求2所述的方法,其特征在于,所述基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌,包括:
生成预设字符串,所述预设字符串包含所述第一访问认证令牌、时间戳以及所述密钥;
基于哈希算法对所述预设字符串进行加密处理,生成第二访问认证令牌,所述第二访问认证令牌为基于哈希算法对所述预设字符串进行加密处理后生成的与所述预设字符串对应的散列值。
4.如权利要求1所述的方法,其特征在于,在所述将所述第一访问认证令牌转换为第二访问认证令牌之后,所述方法还包括:
获取所述第一访问认证令牌的第一有效期;
基于所述第一有效期,确定所述第二访问认证令牌的第二有效期,所述第二有效期短于所述第一有效期;
在距所述第二有效期截止前的预设时间范围内更新所述第二访问认证令牌。
5.如权利要求4所述的方法,其特征在于,所述基于所述第二访问认证令牌,对请求对象的身份进行验证,包括:
判断所述请求对象对应的访问认证令牌与所述第二访问认证令牌是否匹配,如果否,确定身份验证失败;
如果是,判断所述第二访问认证令牌的第二有效期是否超期,如果超期,确定身份验证失败,如果未超期,确定身份验证成功。
6.如权利要求1-5中任一权利要求所述的方法,其特征在于,所述第一应用程序为直播应用程序,所述第二应用程序为微信应用程序,所述功能接口包括获取直播列表接口和/或获取直播流接口。
7.一种服务器,所述服务器与第一应用程序对应,其特征在于,所述服务器包括:
获取单元,用于申请获取第一访问认证令牌,所述第一访问认证令牌为通过第二应用程序的小程序功能登录所述第一应用程序时,所述服务器向所述第二应用程序申请的基于所述第二应用程序对应规则生成的访问认证令牌;
转换单元,用于基于所述第一应用程序的身份验证规则,将所述第一访问认证令牌转换为第二访问认证令牌;
身份验证单元,用于在检测到请求所述服务器端的功能接口时,基于所述第二访问认证令牌,对请求对象的身份进行验证。
8.如权利要求7所述的服务器,其特征在于,所述转换单元包括:
获取模块,用于获取所述第一应用程序对应的密钥;
加密模块,用于基于所述密钥,对所述第一访问认证令牌进行加密处理,生成第二访问认证令牌。
9.一种服务器,其特征在于,所述服务器包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-6中任一项所述的身份验证方法的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的身份验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710929542.0A CN107483509B (zh) | 2017-10-09 | 2017-10-09 | 一种身份验证方法、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710929542.0A CN107483509B (zh) | 2017-10-09 | 2017-10-09 | 一种身份验证方法、服务器及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107483509A CN107483509A (zh) | 2017-12-15 |
CN107483509B true CN107483509B (zh) | 2019-12-03 |
Family
ID=60606029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710929542.0A Active CN107483509B (zh) | 2017-10-09 | 2017-10-09 | 一种身份验证方法、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107483509B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055356B (zh) * | 2018-01-08 | 2021-03-16 | 武汉斗鱼网络科技有限公司 | 一种信息处理方法、服务器、客户端及可读存储介质 |
CN108200089B (zh) * | 2018-02-07 | 2022-06-07 | 腾讯云计算(北京)有限责任公司 | 信息安全的实现方法、装置、系统以及存储介质 |
CN108509286B (zh) * | 2018-03-27 | 2022-09-27 | 中国银联股份有限公司 | 一种消息分类的处理方法及装置 |
CN108768928B (zh) * | 2018-04-04 | 2021-04-13 | 厦门集微科技有限公司 | 一种信息获取方法、终端及服务器 |
CN109118160B (zh) * | 2018-06-26 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 一种信息共享方法、装置、终端设备和介质 |
CN110661759B (zh) * | 2018-06-30 | 2021-10-01 | 华为技术有限公司 | 访问检测方法及设备 |
CN108810029B (zh) * | 2018-07-23 | 2021-08-31 | 宏桥高科技集团有限公司 | 一种微服务架构服务间鉴权系统及优化方法 |
CN109408250A (zh) * | 2018-09-27 | 2019-03-01 | 天津字节跳动科技有限公司 | 调用应用程序编程接口api方法、装置、电子设备 |
TWI725352B (zh) * | 2018-11-05 | 2021-04-21 | 緯創資通股份有限公司 | 驗證及授權的方法及驗證伺服器 |
CN109769010B (zh) * | 2018-12-04 | 2021-11-30 | 平安科技(深圳)有限公司 | 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质 |
CN109814942B (zh) * | 2018-12-19 | 2020-09-08 | 北京城市网邻信息技术有限公司 | 一种参数处理方法及装置 |
CN109857484B (zh) * | 2019-01-17 | 2022-07-22 | 北京城市网邻信息技术有限公司 | 针对接口调用请求的处理方法及系统 |
CN111526111B (zh) * | 2019-02-02 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 登录轻应用的控制方法、装置和设备及计算机存储介质 |
CN109995755B (zh) * | 2019-02-20 | 2021-10-26 | 深圳点猫科技有限公司 | 一种基于小程序架构的登录状态的控制方法及装置 |
CN111669351B (zh) * | 2019-03-07 | 2022-05-31 | 腾讯科技(深圳)有限公司 | 鉴权方法、业务服务器、客户端及计算机可读存储介质 |
CN109831456B (zh) * | 2019-03-14 | 2021-11-23 | 腾讯科技(深圳)有限公司 | 消息推送方法、装置、设备及存储介质 |
CN110401665B (zh) * | 2019-07-30 | 2021-06-22 | 四川虹魔方网络科技有限公司 | 统一入口的微信鉴权api接口实现方法 |
CN110688124B (zh) * | 2019-08-23 | 2023-03-17 | 北京奇艺世纪科技有限公司 | 小程序处理方法、装置、电子设备及计算机可读存储介质 |
CN110753347B (zh) * | 2019-09-11 | 2024-01-12 | 上海二三四五网络科技有限公司 | 一种静默授权的控制方法及控制装置 |
CN110619208B (zh) * | 2019-09-24 | 2022-02-01 | 京东科技控股股份有限公司 | 用户验证方法、服务器、用户设备和系统 |
CN111027047B (zh) * | 2019-11-29 | 2024-04-02 | 安天科技集团股份有限公司 | 应用程序敏感信息管控方法、装置、电子设备及存储介质 |
CN111160845B (zh) * | 2019-12-06 | 2023-10-27 | 中国建设银行股份有限公司 | 一种业务处理方法和装置 |
CN111241499B (zh) * | 2020-01-07 | 2023-05-05 | 腾讯科技(深圳)有限公司 | 应用程序登录的方法、装置、终端及存储介质 |
CN111970231B (zh) * | 2020-06-29 | 2022-06-07 | 福建天泉教育科技有限公司 | 令牌接口降级的方法、存储介质 |
CN111835513B (zh) * | 2020-07-17 | 2022-03-25 | 支付宝(杭州)信息技术有限公司 | 一种更新凭证数据的方法、装置及设备 |
CN112836235A (zh) * | 2021-02-01 | 2021-05-25 | 长沙市到家悠享网络科技有限公司 | 信息的同步方法、系统、装置、设备及存储介质 |
CN113779545A (zh) * | 2021-08-27 | 2021-12-10 | 深圳市优必选科技股份有限公司 | 数据跨进程共享的方法、终端设备及计算机可读存储介质 |
CN114363054B (zh) * | 2021-12-31 | 2023-12-01 | 杭州数梦工场科技有限公司 | 接口请求转换方法、接口转换装置、电子设备及存储介质 |
CN114567509A (zh) * | 2022-03-18 | 2022-05-31 | 上海派拉软件股份有限公司 | 一种Web应用访问系统及方法 |
CN115150104B (zh) * | 2022-09-01 | 2022-11-25 | 梯度云科技(北京)有限公司 | 一种对目标接口进行周期性监控的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743859A (zh) * | 2014-12-10 | 2016-07-06 | 深圳云之家网络有限公司 | 一种轻应用认证的方法、装置及系统 |
CN106254319A (zh) * | 2016-07-22 | 2016-12-21 | 杭州华三通信技术有限公司 | 一种轻应用登录控制方法和装置 |
CN106341420A (zh) * | 2016-10-21 | 2017-01-18 | 广东亿迅科技有限公司 | 基于即搜即用模式的快速开发应用程序的方法和系统 |
CN106470184A (zh) * | 2015-08-14 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 安全认证方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040103325A1 (en) * | 2002-11-27 | 2004-05-27 | Priebatsch Mark Herbert | Authenticated remote PIN unblock |
-
2017
- 2017-10-09 CN CN201710929542.0A patent/CN107483509B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743859A (zh) * | 2014-12-10 | 2016-07-06 | 深圳云之家网络有限公司 | 一种轻应用认证的方法、装置及系统 |
CN106470184A (zh) * | 2015-08-14 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 安全认证方法、装置及系统 |
CN106254319A (zh) * | 2016-07-22 | 2016-12-21 | 杭州华三通信技术有限公司 | 一种轻应用登录控制方法和装置 |
CN106341420A (zh) * | 2016-10-21 | 2017-01-18 | 广东亿迅科技有限公司 | 基于即搜即用模式的快速开发应用程序的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107483509A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107483509B (zh) | 一种身份验证方法、服务器及可读存储介质 | |
CN111429254B (zh) | 一种业务数据处理方法、设备以及可读存储介质 | |
US9621355B1 (en) | Securely authorizing client applications on devices to hosted services | |
US20220394026A1 (en) | Network identity protection method and device, and electronic equipment and storage medium | |
CN109474916B (zh) | 一种设备鉴权方法、装置以及机器可读介质 | |
CN108848496B (zh) | 基于TEE的虚拟eSIM卡的认证方法、TEE终端和管理平台 | |
CN109522726A (zh) | 小程序的鉴权方法、服务器及计算机可读存储介质 | |
CN112671720B (zh) | 一种云平台资源访问控制的令牌构造方法、装置及设备 | |
CN111639327A (zh) | 一种开放平台的认证方法及装置 | |
CN110958119A (zh) | 身份验证方法和装置 | |
CN112152778B (zh) | 一种节点管理方法、装置、及电子设备 | |
CN111130798A (zh) | 一种请求鉴权方法及相关设备 | |
WO2023093500A1 (zh) | 一种访问验证方法及装置 | |
CN108768928B (zh) | 一种信息获取方法、终端及服务器 | |
CN112448930A (zh) | 账号注册方法、装置、服务器及计算机可读存储介质 | |
CN114553480B (zh) | 跨域单点登录方法、装置、电子设备及可读存储介质 | |
CN110910110A (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN116170144B (zh) | 智能电网匿名认证方法、电子设备及存储介质 | |
CN110034922B (zh) | 请求处理方法、处理装置以及请求验证方法、验证装置 | |
CN116647345A (zh) | 权限令牌的生成方法以及装置、存储介质、计算机设备 | |
CN112148345B (zh) | 小程序包发送方法、装置、电子设备和计算机可读介质 | |
KR20160109241A (ko) | 리소스의 안전성 검증 장치와 서버 및 검증방법 | |
CN111723347B (zh) | 身份认证方法、装置、电子设备及存储介质 | |
CN110995756B (zh) | 调用服务的方法和装置 | |
CN112953720A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231110 Address after: Room 606-609, Compound Office Complex Building, No. 757, Dongfeng East Road, Yuexiu District, Guangzhou, Guangdong Province, 510699 Patentee after: China Southern Power Grid Internet Service Co.,Ltd. Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |