[发明专利]令牌校验方法和装置有效
申请号: | 201611128117.3 | 申请日: | 2016-12-09 |
公开(公告)号: | CN108234122B | 公开(公告)日: | 2021-07-02 |
发明(设计)人: | 孙莹杰 | 申请(专利权)人: | 杭州海康汽车技术有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 江崇玉 |
地址: | 310051 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 令牌 校验 方法 装置 | ||
本发明属于网络访问控制技术领域,公开了令牌产生方法和装置以及令牌校验方法和装置。本发明的令牌产生方法,应用于服务器集群,该方法包括:接收客户端发送的需要校验的令牌的标识字符串;在令牌数据库中查找为标识字符串的键,其中令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为对应键的键值的信息字符串;当在令牌数据库中查找到为标识字符串的键后,获取键的键值,并随后将令牌数据库中存储的键的键值设为无效值;检测获取到的键的键值,当键值不是无效值时则校验结果为通过,当键值是无效值时则校验结果为不通过。本发明以简单方便的机制确保令牌一次有效。
技术领域
本发明涉及网络访问控制技术领域,特别涉及令牌校验方法和装置。
背景技术
在分布式系统中,各组件之间通过令牌传递用户身份是最常见的方案,例如单点登录、视频应用中取流等。利用令牌如何单点登录和身份校验已经有大量的发明,但是如何保证令牌一次有效在本发明之前目前尚无较好的方案。很多系统都没有真正做到令牌一次有效,存在较大的漏洞,或者为了达到一次有效的目的,系统将变得非常复杂。
现有技术中保证令牌一次有效的一般方案是:客户端向服务器集群申请令牌,服务器集群生成令牌,将令牌存入数据库中同时把令牌返回给客户端;客户端向服务器集群请求校验令牌,服务器集群从分布式锁服务器中获取该令牌的锁,将该令牌锁定,防止在校验期间出现同一令牌的另一校验进程,然后从数据库中提取令牌详细信息,进行令牌校验,确认令牌是否有效。
上述方案存在以下缺陷:
1、令牌存储在数据库中,由于申请令牌和校验令牌比较频繁,给数据库增加了不少压力。
2、需要分布式锁服务器,给系统增加了复杂性,给小型系统增加成本。
3、令牌有效期是在令牌服务器集群中校验的,需要令牌服务器和数据库服务器的时间保持严格一致。
4、逻辑复杂度高,步骤多,如果其中有一步失败的话,要很多容错步骤,且容易发生死锁。
发明内容
有鉴于此,本发明实施例提供了令牌校验方法和装置,简单方便的确保了令牌一次有效。其技术方案如下:
第一方面,一种令牌校验方法,应用于服务器集群,所述方法包括:
接收客户端发送的需要校验的令牌的标识字符串;
在令牌数据库中查找为所述标识字符串的键,其中所述令牌数据库中存储有已经生成的令牌,包括存为键的标识字符串和存为对应键的键值的信息字符串;
当在令牌数据库中查找到为所述标识字符串的键后,获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值;
检测获取到的所述键的键值,当该键值不是无效值时则校验结果为通过,当该键值是无效值时则校验结果为不通过。
可选择地,所述获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值是原子特性操作。
可选择地,所述令牌数据库为Redis数据库,所述在数据库中查找为所述标识字符串的键,获取所述键的键值,并随后将所述令牌数据库中存储的所述键的键值设为无效值包括:
在Redis数据库中调用getex命令查找为所述标识字符串的键,获取所述键的键值,并随后将Redis数据库中存储的所述键的键值设为无效值。
可选择地,该方法还包括:在所述接收客户端发送的需要校验的令牌的标识字符串之前,通过以下方式生成所述令牌:
接收客户端的申请令牌的请求;
根据所述请求产生令牌,所述令牌包括标识字符串和信息字符串;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州海康汽车技术有限公司,未经杭州海康汽车技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611128117.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于号码的无密钥加密、解密的方法
- 下一篇:一种高可靠动态令牌