服务端统一管理第三方Token、客户端分布式共享第三方Token的方法与流程

专利检索2022-05-11  5


服务端统一管理第三方token、客户端分布式共享第三方token的方法
技术领域
1.本发明涉及一种服务端统一管理第三方token、客户端分布式共享第三方token的方法,适用于软件多实例分布式部署的场景。


背景技术:

2.软件服务与第三方服务交互时,一般使用token进行安全校验。token存在时效性,token到期后将无法使用。当软件服务存在多个实例时,需支持共享使用第三方token。否则多个实例各自获取第三方token,后获取的token有效,先获取token无效。
3.现有token共享方案一般使用redis实现。分布式场景中,将redis在网络上暴漏出来,存在一定的安全风险。


技术实现要素:

4.本发明提供了一种服务端统一管理第三方token、客户端分布式共享第三方token的方法。
5.本发明为实现上述目的,通过以下技术方案实现:一种服务端统一管理第三方token、客户端分布式共享第三方token的方法,1)服务端包含如下服务:定时检测服务:服务端定期检测第三方token是否到期,若到期则调用token生成服务,生成新的token;手动更新服务:提供管理员使用,用于手动更新token;token生成服务:调用第三方token服务,生成新的token,存储新的token到服务端存储,并调用消息通知服务,发送token更新消息;服务端token存储:用于服务端存储token;消息通知服务:用于发送token更新消息,通知客户端token已更新;token查询服务:提供token查询服务,供客户端查询、获取当前可用token;2)客户端包含如下服务:消息订阅服务:接收token更新消息,收到消息后,调用token同步服务;token同步服务:请求服务端token查询服务,获取新的token,并存储token到客户端存储;客户端token存储:客户端缓存token使用。
6.进一步地,服务端定期检测第三方token,自动更新token的流程如下:a)服务端遍历所有token,判断token是否即将到期;b)若步骤a判断token未到期,则执行步骤f;c)若步骤a判断token即将到期时,则调用token生成服务,请求第三方服务获取新的token;
d)服务端存储新的token到服务端存储;e)服务端调用消息通知服务,通知客户端当前token已更新;f)服务端判断是否token遍历完成,若遍历完成则结束;若遍历未完成则继续遍历。
7.进一步地,服务端手动强制更新token的流程如下:a)系统管理员发起强制token更新命令;b)服务端收到命令后,调用token生成服务,请求第三方服务获取新的token;c)服务端存储新的token到服务端存储;d)服务端调用消息通知服务,通知客户端当前token已更新。
8.进一步地,客户端收到token更新消息,执行token同步的流程如下:a)客户端收到token更新消息;b)客户端调用token同步服务,请求服务端token查询服务,获取当前有效的token;c)客户端更新token到客户端存储。
9.本发明的优点在于:1.本方法通过自建服务管理第三方token,并实现分布式场景中第三方token的共享,实现方式更安全。
10.2.本方法服务端统一管理第三方token,并使用消息机制通知分布式客户端更新token,实现方式更高效。
附图说明
11.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
12.图1为本发明的部署架构示意图。
13.图2为本发明的服务器架构示意图。
14.图3为服务端定期检测第三方token,自动更新token的流程图。
15.图4为服务端强制更新token的流程图。
16.图5为客户端同步token的流程图。
具体实施方式
17.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
18.参考图1及参考图2,一种服务端统一管理第三方token、客户端分布式共享第三方token的方法,包含第三方token共享服务端(以下简称服务端)、第三方token共享客户端(以下简称客户端)两部分,客户端部署在各分布式网络环境;客户端可通过公网、内网、专线等与服务端通信;客户端可集成到软件服务实例内部,也可以与软件服务实例分离、单独部署。
19.1)服务端包含如下服务:定时检测服务:服务端定期检测第三方token是否到期,若到期则调用token生成
服务,生成新的token;手动更新服务:提供管理员使用,用于手动更新token;token生成服务:调用第三方token服务,生成新的token,存储新的token到服务端存储,并调用消息通知服务,发送token更新消息;服务端token存储:用于服务端存储token;消息通知服务:用于发送token更新消息,通知客户端token已更新;token查询服务:提供token查询服务,供客户端查询、获取当前可用token;2)客户端包含如下服务:消息订阅服务:接收token更新消息,收到消息后,调用token同步服务;token同步服务:请求服务端token查询服务,获取新的token,并存储token到客户端存储;客户端token存储:客户端缓存token使用。
20.参考图3,服务端定期检测第三方token,自动更新token的流程如下:a)服务端遍历所有token,判断token是否即将到期;b)若步骤a判断token未到期,则执行步骤f;c)若步骤a判断token即将到期时,则调用token生成服务,请求第三方服务获取新的token;d)服务端存储新的token到服务端存储;e)服务端调用消息通知服务,通知客户端当前token已更新;f)服务端判断是否token遍历完成,若遍历完成则结束;若遍历未完成则继续遍历。
21.注:定期检测任务的执行周期需小于判断token是否即将到期的时间差。例如,任务执行周期为10分钟,则可判断token是否15(需大于10)分钟后到期。否则会导致下次任务还未执行,token已经失效。
22.参考图4,服务端手动强制更新token的流程如下:a)系统管理员发起强制token更新命令;b)服务端收到命令后,调用token生成服务,请求第三方服务获取新的token;c)服务端存储新的token到服务端存储;d)服务端调用消息通知服务,通知客户端当前token已更新。
23.参考图5,客户端收到token更新消息,执行token同步的流程如下:a)客户端收到token更新消息;b)客户端调用token同步服务,请求服务端token查询服务,获取当前有效的token;c)客户端更新token到客户端存储。
24.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
转载请注明原文地址:https://win.8miu.com/read-1050135.html

最新回复(0)