掌桥专利:专业的专利平台
掌桥专利
首页

用户鉴权方法、装置、服务器以及存储介质

文献发布时间:2023-06-19 10:16:30


用户鉴权方法、装置、服务器以及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种用户鉴权方法、装置、服务器以及存储介质。

背景技术

目前,在用户访问业务平台时,为了确保用户及平台安全,需要对用户的访问请求进行鉴权,在鉴权通过时,才允许用户访问业务平台的业务。

相关技术中,为了对用户的访问请求进行鉴权,需要预先设置大量的权限方案,这就导致了权限维护的工作量大,并且由于鉴权时通常是通过将访问请求中携带的访问参数与每个权限方案进行比对,以对用户的访问请求进行鉴权,若预先设置大量的权限方案会导致鉴权的速度慢。

发明内容

本公开提供一种用户鉴权方法、装置、服务器以及存储介质,以至少解决相关技术中的用户鉴权方式存在的权限维护工作量大,鉴权速度慢的问题。

本公开的技术方案如下:

获取所述访问请求中所携带的访问对象参数和用户标识;获取与所述用户标识匹配的用户权限列表;其中,所述用户权限列表,包括具有访问权限的路径列表,以及具有访问权限的业务标识列表;将所述访问对象参数中的访问路径与所述路径列表比对,以及将所述访问对象参数中的访问业务标识与所述业务标识列表比对;在所述路径列表中存在所述访问路径的前缀,且所述业务标识列表中存在所述访问业务标识的情况下,确定所述访问请求鉴权通过,允许以所述访问路径访问所述访问业务标识对应的业务。

作为本公开实施例的第一种可能的情况,所述将所述访问对象参数中的访问路径与所述路径列表比对,以及将所述访问对象参数中的访问业务标识与所述业务标识列表比对,包括:采用第一正则表达式将所述访问路径与所述路径列表比对;在所述路径列表中存在所述访问路径的前缀时,在所述访问请求中携带的访问对象参数中查询所述访问业务标识;确定所述访问请求中携带有所述访问业务标识的情况下,采用第二正则表达式将所述访问业务标识与所述业务标识列表比对。

作为本公开实施例的第二种可能的情况,所述采用第一正则表达式将所述访问路径与所述路径列表比对之后,还包括:在所述路径列表中不存在所述访问路径的前缀时,确定所述访问请求鉴权失败。

作为本公开实施例的第三种可能的情况,所述在所述访问请求中携带的访问对象参数中查询所述访问业务标识之后,还包括:在所述访问请求中未携带有所述访问业务标识的情况下,确定所述访问请求鉴权通过。

作为本公开实施例的第四种可能的情况,所述获取访问请求中所携带的访问对象参数和用户标识之前,还包括:监听业务平台的访问请求;对所述访问请求进行路由拦截。

作为本公开实施例的第五种可能的情况,所述获取与所述用户标识匹配的用户权限列表,包括:向设定的接口发送携带所述用户标识的列表请求,以获取与所述用户标识匹配的所述用户权限列表;添加原型属性;其中,所述原型属性,指向所述用户权限列表,用于后续再次拦截到携带所述用户标识的访问请求时,引用所述原型属性得到所述用户权限列表。

根据本公开实施例的第二方面,提供一种用户鉴权装置,包括:第一获取模块,被配置为获取所述访问请求中所携带的访问对象参数和用户标识;第二获取模块,被配置为获取与所述用户标识匹配的用户权限列表;其中,所述用户权限列表,包括具有访问权限的路径列表,以及具有访问权限的业务标识列表;比对模块,被配置为将所述访问对象参数中的访问路径与所述路径列表比对,以及将所述访问对象参数中的访问业务标识与所述业务标识列表比对;第一鉴权模块,被配置为在所述路径列表中存在所述访问路径的前缀,且所述业务标识列表中存在所述访问业务标识的情况下,确定所述访问请求鉴权通过,允许以所述访问路径访问所述访问业务标识对应的业务。

作为本公开实施例的第一种可能的情况,所述比对模块,包括:第一比对单元,被配置为采用第一正则表达式将所述访问路径与所述路径列表比对;查询单元,被配置为在所述路径列表中存在所述访问路径的前缀时,在所述访问请求中携带的访问对象参数中查询所述访问业务标识;第二比对单元,被配置为确定所述访问请求中携带有所述访问业务标识的情况下,采用第二正则表达式将所述访问业务标识与所述业务标识列表比对。

作为本公开实施例的第二种可能的情况,所述装置,还包括:第二鉴权模块,被配置为在所述路径列表中不存在所述访问路径的前缀时,确定所述访问请求鉴权失败。

作为本公开实施例的第三种可能的情况,所述装置,还包括:第三鉴权模块,被配置为在所述访问请求中未携带有所述访问业务标识的情况下,确定所述访问请求鉴权通过。

作为本公开实施例的第四种可能的情况,所述装置,还包括:监听模块,被配置为监听业务平台的访问请求;拦截模块,被配置为对所述访问请求进行路由拦截。

作为本公开实施例的第五种可能的情况,所述第二获取模块,包括:获取单元,被配置为向设定的接口发送携带所述用户标识的列表请求,以获取与所述用户标识匹配的所述用户权限列表;添加单元,被配置为添加原型属性;其中,所述原型属性,指向所述用户权限列表,用于后续再次拦截到携带所述用户标识的访问请求时,引用所述原型属性得到所述用户权限列表。

根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现本公开第一方面实施例提出的用户鉴权方法。

根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行本公开第一方面实施例提出的用户鉴权方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序由服务器的处理器执行时,使得服务器能够执行本公开第一方面实施例提出的用户鉴权方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过获取访问请求中所携带的访问对象参数和用户标识,根据用户标识,获取与用户标识匹配的用户权限列表,其中,用户权限列表包括具有访问权限的路径列表,以及具有访问权限的业务标识列表,再将访问请求中携带的访问对象参数中的访问路径与路径列表比对,将访问对象参数中的访问业务标识与业务标识列表比对,从而在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务,实现了对用户的访问请求的鉴权,提高了鉴权速度,且降低了权限维护的工作量。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例所示出的用户鉴权方法的流程图;

图2是根据一示例性实施例所示出的另一用户鉴权方法的流程图;

图3是根据一示例性实施例所示出的另一用户鉴权方法的流程图;

图4是根据一示例性实施例所示出的另一用户鉴权方法的流程图;

图5是根据一示例性实施例所示出的用户鉴权装置的框图;

图6是根据一示例性实施例所示出的另一用户鉴权装置的框图;

图7是根据一示例性实施例示出的一种用于用户鉴权的服务器的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

目前,在用户访问业务平台时,为了确保用户及平台安全,需要对用户的访问请求进行鉴权,在鉴权通过时,才允许用户访问业务平台的业务。以游戏平台为例,需要用户同时具有游戏的访问路径权限及游戏标识权限,才能以该访问路径访问该游戏的内容。

相关技术中,以游戏平台的权限管理为例,比如一个用户具有访问路径a和访问路径b的权限,同时具有游戏A、游戏B、游戏C这三个游戏标识的权限,则需要预先设置该用户对应的如下6个权限方案:1)具有访问路径a并且具有游戏A的游戏标识的权限;2)具有访问路径b并且具有游戏A的游戏标识的权限;3)具有访问路径a并且具有游戏B的游戏标识的权限;4)具有访问路径b并且具有游戏B的游戏标识的权限;5)具有访问路径a并且具有游戏C的游戏标识的权限;6)具有访问路径b并且具有游戏C的游戏标识的权限。在获取到该用户的访问请求时,需要将访问请求中的访问路径及游戏标识的组合,比如访问路径a和游戏A,与上述6个权限方案进行比对,以对该用户的访问请求进行鉴权。

那么,假设某个用户具有10个访问路径的权限及20个游戏标识的权限,则需要预先设置好该用户对应的10*20=200个权限方案,在对该用户的访问请求进行鉴权时,需要将访问请求中的访问路径及游戏标识的组合与预先设置好的200个权限方案进行比对。由此可见,相关技术中的用户鉴权方法,为了对用户的访问请求进行鉴权,需要预先设置大量的权限方案,且用户具有权限的访问路径及游戏标识的数量越多,需要预先设置的权限方案的数量越多,权限维护的工作量越大。并且,由于鉴权时通常是通过将访问请求中携带的访问参数与每个权限方案进行比对,以对用户的访问请求进行鉴权,若预先设置了大量的权限方案,还会导致用户鉴权时的速度慢。

本公开主要针对相关技术中用户鉴权方法存在的权限维护工作量大,鉴权速度慢的技术问题,提出一种用户鉴权方法。本公开实施例的用户鉴权方法,通过获取访问请求中所携带的访问对象参数和用户标识后,获取与用户标识匹配的用户权限列表,其中,用户权限列表包括具有访问权限的路径列表,以及具有访问权限的业务标识列表,再将访问请求中携带的访问对象参数中的访问路径与路径列表比对,以及将访问对象参数中的访问业务标识与业务标识列表比对,从而在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务,实现了对用户的访问请求的鉴权,提高了鉴权速度,且降低了权限维护的工作量。

下面结合附图,对本公开实施例提供的用户鉴权方法进行详细说明。

图1是根据一示例性实施例所示出的用户鉴权方法的流程图。

需要说明的是,本公开实施例的用户鉴权方法的执行主体可以为用户鉴权装置,该用户鉴权装置,可以为服务器,也可以配置在服务器中,以对用户的访问请求进行鉴权,提高鉴权速度,且降低权限维护的工作量。

其中,服务器,可以是任意能够进行数据处理的静止或移动计算设备,例如笔记本电脑、可穿戴设备等移动计算设备,或者台式计算机等静止的计算设备,或者其它类型的计算设备,本公开实施例对此不作限定。

如图1所示,用户鉴权方法可以包括以下步骤:

在步骤101中,获取访问请求中所携带的访问对象参数和用户标识。

其中,访问请求,为用户对业务平台的访问请求。业务平台,可以是与游戏业务相关的游戏业务平台,也可以是与其它业务相关的其它业务平台,本申请对此不作限制。另外,业务平台可以是基于Vue.js框架开发的平台,也可以是基于其它框架开发的平台,本申请对此不作限制。

其中,访问对象参数,可以包括访问业务标识、访问路径等与任意与待访问的业务相关的参数。其中,访问业务标识,为用户所要访问的业务即待访问业务对应的标识,用于唯一标识待访问业务,其可以是待访问业务的名称,比如“游戏A”,或者,也可以是预先为待访问业务分配的标识号等,本申请对此不作限制。访问路径,为待访问业务对应的访问路径,通过该访问路径,可以定位到待访问业务。

用户标识,用于唯一标识用户,以将该用户与其它用户区分开来。用户标识例如可以是用户的身份证号码、手机号码等任意能够唯一标识用户身份的信息,本申请对此不作限制。

在示例性实施例中,可以监听业务平台的访问请求,并对访问请求进行路由拦截,进而从拦截到的访问请求中获取访问请求所携带的访问对象参数和用户标识。即,在步骤101之前,还可以包括:监听业务平台的访问请求;对访问请求进行路由拦截。

在示例性实施例中,以业务平台为基于Vue.js框架开发的平台为例,可以监听业务平台的访问请求,在用户访问业务平台时,通过vue.router进行拦截,并通过router.beforeEach导航钩子函数获取访问请求所携带的访问对象参数和用户标识。其中,vue.router为WebAPP(移动端的网页应用)的链路路径管理系统,vue.router和Vue.js深度集成,适用于构建单页面应用。

在步骤102中,获取与用户标识匹配的用户权限列表;其中,用户权限列表,包括具有访问权限的路径列表,以及具有访问权限的业务标识列表。

其中,用户权限列表包括的路径列表中,包括用户具有访问权限的各个访问路径;用户权限列表包括的业务标识列表中,包括用户具有访问权限的各个业务标识。

举例来说,以业务平台为游戏平台为例,假设一个用户标识为“X1”的用户具有访问路径a和访问路径b的权限,同时具有游戏A、游戏B、游戏C这三个业务标识的权限,则用户“X1”对应的用户权限列表包括访问路径a和访问路径b,用户“X1”对应的业务标识列表包括游戏A、游戏B和游戏C这三个业务标识。

在示例性实施例中,可以预先确定每个用户具有访问权限的各个访问路径,以形成每个用户对应的路径列表,并确定每个用户具有访问权限的各个业务标识,以形成每个用户对应的业务标识列表,之后根据每个用户对应的路径列表和业务标识列表,形成各个用户分别对应的用户权限列表。进而,在获取访问请求中携带的用户标识后,可以根据用户标识,从预先生成的各个用户分别对应的用户权限列表中,获取与用户标识匹配的用户权限列表。

在步骤103中,将访问对象参数中的访问路径与路径列表比对,以及将访问对象参数中的访问业务标识与业务标识列表比对。

在步骤104中,在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务。

在示例性实施例中,可以分别将访问对象参数中的访问路径与路径列表比对,以及将访问对象参数中的访问业务标识与业务标识列表比对,若路径列表中存在访问请求中携带的访问对象参数中的访问路径的前缀,且业务标识列表中存在访问请求中携带的访问对象参数中的访问业务标识,则确定用户具有以访问路径访问访问业务标识对应的业务的权限,从而确定访问请求鉴权通过,从而允许以访问请求中的访问路径访问访问业务标识对应的业务。

举例来说,假设以业务平台为游戏平台为例,某用户的用户标识为“X1”,该用户具有访问路径a和b的权限,同时具有游戏A、B、C这三个业务标识的权限,则可以预先生成用户“X1”的用户权限列表,用户权限列表包括的路径列表中,包括访问路径a和访问路径b,用户权限列表包括的业务标识列表中,包括游戏A、游戏B和游戏C这三个业务标识。则从访问请求中获取所携带的访问对象参数及用户标识后,若访问对象参数包括访问路径a和访问业务标识“游戏B”,用户标识为“X1”,则可以根据用户标识“X1”,从预先生成的各用户的用户权限列表中,获取与用户“X1”匹配的用户权限列表,并将访问对象参数中的访问路径a与用户“X1”对应的路径列表比对,将访问对象参数中的访问业务标识“游戏B”与用户“X1”对应的业务标识列表比对。由于用户“X1”对应的路径列表中存在访问路径a的前缀,且用户“X1”对应的业务标识列表中存在“游戏B”,从而可以确定用户“X1”具有以访问路径a访问业务标识“游戏B”的内容的权限,则可以确定用户“X1”的访问请求鉴权通过,进而允许以访问路径a访问业务标识“游戏B”对应的业务。

在示例性实施例中,以业务平台为基于vue.js框架开发的平台为例,可以通过router.beforeEach导航钩子函数实现权限控制。具体可以采用如下程序实现。

需要说明的是,在示例性实施例中,若确定路径列表中不存在访问路径的前缀,则表示用户不具有以访问路径访问对应业务的权限,若路径列表中存在访问路径的前缀,但是业务标识列表中不存在访问业务标识,则表示用户虽然具有访问路径的权限,但是不具有以访问路径访问访问业务标识对应的业务的权限,则可以确定访问请求鉴权未通过。

在示例性实施例中,若确定访问请求鉴权未通过,则可以路由到业务平台的首页,并展示提示消息,以提示用户没有访问权限。

可以理解的是,本申请实施例中,为了进行用户鉴权,预先生成了路径列表和业务标识列表,即在预先设置权限方案时,拆分了访问路径权限及业务标识权限两个维度,从两个维度为用户交叉绑定权限,生成了路径列表以及业务标识列表,由于路径列表中包括对应用户的具有访问权限的各个访问路径,业务标识列表包括对应用户的具有访问权限的各个业务标识,因此预先创建的权限方案的数量,为路径列表包括的用户具有访问权限的访问路径的数量,与业务标识列表包括的用户具有访问权限的业务标识的数量的总和,即两个维度各自的权限方案的数量的总和。在将访问请求中携带的访问对象参数与预先创建的权限方案进行比对时,由于是分别将访问对象参数中的访问路径与路径列表比对,将访问对象参数中的访问业务标识与业务标识列表比对,因此进行用户鉴权时的比对次数,为路径列表包括的用户具有访问权限的访问路径的数量,与业务标识列表包括的用户具有访问权限的业务标识的数量的总和。

比如上述示例中,预先创建用户“X1”对应的权限方案时,创建的路径列表中包括用户“X1”具有访问权限的访问路径a和访问路径b这两个访问路径,业务标识列表中包括用户“X1”具有访问权限的“游戏A”、“游戏B”和“游戏C”这三个业务标识,即预先创建了5个权限方案。在对用户“X1”的访问请求进行鉴权时,是将用户“X1”的访问请求中携带的访问对象参数中的访问路径a,与路径列表中包括的两个访问路径分别进行比对,将用户“X1”的访问请求中携带的访问对象参数中的访问业务标识“游戏B”,与业务标识列表中包括的三个业务标识分别进行比对,即比对次数为5次。

类似的,假设某个用户具有10个访问路径的权限及20个游戏标识的权限,则根据本申请的方案,需要预先设置好该用户对应的10+20=30个权限方案,相比相关技术中的需要预先设置好该用户对应的10*20=200个权限方案的用户鉴权方式,需要预先设置的权限方案的数量明显减少。因此本申请提供的用户鉴权方法,能够减少需要预先设置的权限方案的数量,减少权限维护时的工作量。并且,在进行用户鉴权时,由于预先设置的权限方案的数量减少,比对次数随之减少,从而能够提高鉴权速度。

本公开实施例的用户鉴权方法,通过获取访问请求中所携带的访问对象参数和用户标识后,获取与用户标识匹配的用户权限列表,其中,用户权限列表包括具有访问权限的路径列表,以及具有访问权限的业务标识列表,再将访问请求中携带的访问对象参数中的访问路径与路径列表比对,将访问对象参数中的访问业务标识与业务标识列表比对,从而在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务,实现了对用户的访问请求的鉴权,提高了鉴权速度,且降低了权限维护的工作量。

通过上述分析可知,本申请实施例提供的用户鉴权方法,可以预先设置各用户分别对应的用户权限列表,进而在获取到访问请求所携带的访问对象参数和用户标识后,可以将访问对象参数中的访问路径和与用户标识匹配的用户权限列表中包括的路径列表比对,以及将访问对象参数中的访问业务标识和与用户标识匹配的用户权限列表中包括的业务标识列表比对,以对访问请求进行鉴权。下面结合图2,对本公开实施例提供的用户鉴权方法中将访问对象参数中的访问路径与路径列表比对,以及将访问对象参数中的访问业务标识与业务标识列表比对,以对访问请求进行鉴权的方法进行说明。

图2是根据一示例性实施例示出的另一种用户鉴权方法的流程图。

如图2所示,图1所示的步骤103具体可以包括以下步骤201-203。

在步骤201中,采用第一正则表达式将访问路径与路径列表比对。

在步骤202中,在路径列表中存在访问路径的前缀时,在访问请求中携带的访问对象参数中查询访问业务标识。

其中,正则表达式,是定义搜索模式的字符序列,通常用于字符串上的“查找”或“查找并替换”操作,或者用于输入验证等。举例来说,正则表达式.at,可以用于匹配任何以“at”结尾的三个字符的字符串,从而利用该正则表达式可以匹配到比如“hat”、“cat”和“bat”等字符串;正则表达式a.*?d,可以用于匹配任何以“a”开始以“d”结束的字符串,从而利用该正则表达式可以匹配到比如“and”、“aud”等字符串。

在示例性实施例中,可以根据访问对象参数中的访问路径的前缀,设置第一正则表达式,用于匹配任何以访问对象参数中的访问路径的前缀开头的字符串,并采用第一正则表达式在路径列表中进行匹配,在采用第一正则表达式,在路径列表中匹配到任意以访问对象参数中的访问路径的前缀开头的字符串时,即可确定路径列表中存在访问路径的前缀。

在步骤203中,确定访问请求中携带有访问业务标识的情况下,采用第二正则表达式将访问业务标识与业务标识列表比对。

可以理解的是,在某些场景下,访问请求中可能会携带访问业务标识,比如在访问某个特定游戏的内容时,访问请求中会携带该特定游戏的游戏标识。而在某些场景下,访问请求中可能并不会携带访问业务标识,比如,在用户请求进行游戏平台的公共操作,例如进行与游戏业务无关的用户信息更新等配置操作时,访问请求中并不会包括游戏标识。那么,本申请实施例中,在确定路径列表中存在访问路径的前缀时,可以先在访问请求携带的访问对象参数中查询访问业务标识,确定访问请求中是否携带访问业务标识,若访问请求中携带有访问业务标识,再将访问业务标识与业务标识列表比对。

在示例性实施例中,可以根据访问对象参数中的访问业务标识,设置第二正则表达式,用于匹配访问业务标识对应的字符串,例如,访问业务标识为“A”,则第二正则表达式可以为/A/,并在路径列表中存在访问路径的前缀,且访问请求中携带有访问业务标识的情况下,采用第二正则表达式将访问业务标识与业务标识列表比对,在采用第二正则表达式,在业务标识列表中匹配到访问业务标识对应的字符串时,即可确定业务标识列表中存在访问业务标识,即用户具有以访问路径访问访问业务标识对应的业务的权限,从而可以确定用户访问请求鉴权通过,允许用户以访问对象参数中的访问路径访问访问业务标识对应的业务。

在示例性实施例中,若确定访问请求中未携带有访问业务标识,则表示用户可能是要进行与业务无关的比如用户信息更新等配置操作,此时,只需确定用户此次的访问请求中的访问路径是否鉴权通过即可。即,在路径列表中存在访问路径的前缀时,若访问请求中未携带有访问业务标识,则确定访问请求鉴权通过,允许以访问路径访问对应的业务。

举例来说,继续上述示例,假设从访问请求中获取所携带的访问对象参数及用户标识后,若访问对象参数包括访问路径a和访问业务标识“游戏B”,用户标识为“X1”,则可以根据用户标识“X1”,从预先生成的各用户的用户权限列表中,获取与用户“X1”匹配的用户权限列表,并根据访问路径a的前缀,设置第一正则表达式,用于匹配任何以访问路径a的前缀开头的字符串,在采用第一正则表达式,在用户“X1”对应的路径列表中匹配到以访问路径a的前缀开头的字符串时,即可确定路径列表中存在访问路径a的前缀。

进一步的,可以在访问请求中查询访问业务标识,由于访问请求中携带访问业务标识“游戏B”,则可以设置第二正则表达式,用于匹配“游戏B”对应的字符串,在采用第二正则表达式,在用户“X1”对应的业务标识列表中匹配到“游戏B”对应的字符串时,即可确定业务标识列表中存在访问业务标识“游戏B”,从而可以确定用户“X1”具有以访问路径a访问访问业务标识“游戏B”的内容的权限,则可以确定用户“X1”的访问请求鉴权通过,进而允许以访问路径a访问业务标识“游戏B”对应的业务。

需要说明的是,由于不同的业务可能路径前缀是相同的,比如上述示例中游戏A、B、C共用访问路径a的前缀,以及共用访问路径b的前缀,从而在本申请实施例中,鉴权的时候,可以先依据访问对象参数中的访问路径进行鉴权,在路径列表中存在访问路径的前缀时,再依据访问业务标识进行鉴权。

通过采用第一正则表达式将访问路径与路径列表比对,可以准确确定路径列表中是否存在访问路径的前缀,在路径列表中存在访问路径的前缀,且确定访问请求中携带有访问业务标识的情况下,通过采用第二正则表达式将访问业务标识与业务标识列表比对,可以准确确定业务标识列表中是否存在访问业务标识,进而提高了对用户的访问请求进行鉴权的准确性。

通过上述分析可知,本申请实施例中,可以先将访问路径与路径列表比对,在路径列表中存在访问路径的前缀时,再在访问请求携带的访问对象参数中查询访问业务标识,之后在确定访问请求中携带有访问业务标识的情况下,将访问业务标识与业务标识列表比对,以对访问请求进行鉴权,下面结合图3,针对上述过程,对本公开实施例提供的用户鉴权方法进行进一步说明。

图3是根据一示例性实施例示出的另一种用户鉴权方法的流程图。

如图3所示,该用户鉴权方法可以包括以下步骤301-310。

在步骤301中,监听业务平台的访问请求。

在步骤302中,对访问请求进行路由拦截,并从访问请求中获取所携带的访问对象参数和用户标识。

在步骤303中,获取与用户标识匹配的用户权限列表;其中,用户权限列表,包括具有访问权限的路径列表,以及具有访问权限的业务标识列表。

在步骤304中,采用第一正则表达式将访问路径与路径列表比对,以判断路径列表中是否存在访问路径的前缀,若是,则执行步骤306,否则,执行步骤305。

具体的,上述步骤301-304的具体实现过程及原理,可以参照上述实施例的描述,此处不再赘述。

在步骤305中,确定访问请求鉴权失败。

具体的,若路径列表中不存在访问路径的前缀,则表示用户不具有访问请求中的访问路径的访问权限,此时,可以确定访问请求鉴权失败,不允许用户访问访问路径对应的业务。

通过在路径列表中不存在访问路径的前缀时,直接确定访问请求鉴权失败,避免了后续再将访问业务标识与业务标识列表比对,减少了用户鉴权过程中的工作量,节省了用户鉴权时间,提高了用户鉴权速度。

在步骤306中,判断访问请求中携带的访问对象参数中是否携带有访问业务标识,若是,则执行步骤308,否则,执行步骤307。

在步骤307中,确定访问请求鉴权通过。

具体的,若确定访问请求中未携带有访问业务标识,则表示用户可能是要进行与业务无关的比如用户信息更新等配置操作,此时,只需确定用户此次的访问请求中的访问路径是否鉴权通过即可。那么,若用户的访问请求中的访问路径鉴权通过,而访问请求中未携带有访问业务标识,则可以确定访问请求鉴权通过。即,在路径列表中存在访问路径的前缀,且访问请求中未携带有访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问对应的业务。

通过上述过程,实现了在访问请求中未携带有访问业务标识的情况下,也能够对用户的访问请求进行准确鉴权。

在步骤308中,采用第二正则表达式将访问业务标识与业务标识列表比对,以判断业务标识列表中是否存在访问业务标识,若是,则执行步骤309,否则,执行步骤310。

在步骤309中,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务。

在步骤310中,确定访问请求鉴权失败。

具体的,在确定路径列表中存在访问路径的前缀,且访问请求中携带有访问业务标识的情况下,采用第二正则表达式将访问业务标识与业务标识列表比对,以判断业务标识列表中是否存在访问业务标识。在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识时,表示用户具有以访问路径访问访问业务标识对应的业务的权限,从而可以确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务。在路径列表中存在访问路径的前缀,但业务标识列表中不存在访问业务标识时,表示用户虽然具有访问路径的权限,但是不具有以访问路径访问访问业务标识对应的业务的权限,从而可以确定访问请求鉴权未通过。

通过采用第一正则表达式将访问路径与路径列表比对,可以准确确定路径列表中是否存在访问路径的前缀,在路径列表中存在访问路径的前缀,且确定访问请求中携带有访问业务标识的情况下,通过采用第二正则表达式将访问业务标识与业务标识列表比对,可以准确确定业务标识列表中是否存在访问业务标识,进而通过本申请提供的用户鉴权方法,提高了对用户的访问请求进行鉴权的准确性。

通过上述分析可知,可以预先设置各用户分别对应的用户权限列表,进而在路由拦截到访问请求,并获取到访问请求所携带的访问对象参数和用户标识后,可以获取与用户标识匹配的用户权限列表,以根据访问请求所携带的访问对象参数,以及用户权限列表包括的路径列表和业务标识列表,对访问请求进行鉴权。下面结合图4,对本公开实施例提供的用户鉴权方法中获取与用户标识匹配的用户权限列表的过程进行进一步说明。

图4是根据一示例性实施例示出的另一种用户鉴权方法的流程图。

如图4所示,图1所示的步骤102具体可以包括以下步骤401-402。

在步骤401中,向设定的接口发送携带用户标识的列表请求,以获取与用户标识匹配的用户权限列表。

具体的,可以将预先设置的各用户分别对应的用户权限列表存储在预设位置,并设置通过设定的接口从预设位置获取用户权限列表,从而在监听业务平台的访问请求,并从路由拦截到的访问请求中获取所携带的用户标识后,用户鉴权装置可以向设定的接口发送携带用户标识的列表请求,以从预设位置获取与用户标识匹配的用户权限列表。

其中,预设位置以及设定的接口,可以根据需要任意设置,本申请对此不作限制。

在示例性实施例中,每次拦截到携带用户标识的访问请求时,均可以向设定的接口发送携带用户标识的列表请求,以获取与用户标识匹配的用户权限列表,进而根据访问请求所携带的访问对象参数,以及用户权限列表包括的路径列表和业务标识列表,对访问请求进行鉴权。

在步骤402中,添加原型属性;其中,原型属性,指向用户权限列表,用于后续再次拦截到携带用户标识的访问请求时,引用原型属性得到用户权限列表。

可以理解的是,在进行用户鉴权时,若每次拦截到携带用户标识的访问请求,均向设定的接口发送携带用户标识的列表请求,以获取与用户标识匹配的用户权限列表,过程比较繁琐,另外可能会影响对访问请求的鉴权速度。

那么,本申请实施例中,在获取到与用户标识匹配的用户权限列表后,可以添加原型属性,并设置原型属性指向用户权限列表,用于后续再次拦截到携带用户标识的访问请求时,引用原型属性得到用户权限列表,从而在后续再次拦截到携带用户标识的访问请求时,可以引用原型属性得到用户权限列表,而不必再向设定的接口发送携带用户标识的列表请求,以获取与用户标识匹配的用户权限列表,从而简化获取与用户标识匹配的用户权限列表的过程,节省获取与用户标识匹配的用户权限列表的时间,进一步提高对访问请求的鉴权速度。

以业务平台为基于Vue.js框架开发的平台为例,在第一次获取与用户标识匹配的用户权限列表后,可以将用户权限列表绑定到vue.prototype原型属性上,从而在后续再次拦截到携带用户标识的访问请求时,可以引用原型属性得到用户权限列表。

通过在从访问请求中获取所携带的用户标识后,用户鉴权装置向设定的接口发送携带用户标识的列表请求,以获取与用户标识匹配的用户权限列表,进而添加原型属性,其中,原型属性,指向用户权限列表,用于后续再次拦截到携带用户标识的访问请求时,引用原型属性得到用户权限列表,实现了在后续再次拦截到携带用户标识的访问请求时,可以引用原型属性得到用户权限列表,由于无需每次拦截到携带用户标识的访问请求时均向设定的接口发送携带用户标识的列表请求,简化了获取与用户标识匹配的用户权限列表的过程,节省了获取与用户标识匹配的用户权限列表的时间,进一步提高了对访问请求的鉴权速度。

为了实现上述实施例,本公开实施例提出了一种用户鉴权装置。

图5是根据一示例性实施例所示出的用户鉴权装置的框图。

参照图5,该用户鉴权装置100,可以包括:第一获取模块110、第二获取模块120、比对模块130和第一鉴权模块140。

其中第一获取模块110,被配置为获取访问请求中所携带的访问对象参数和用户标识;

第二获取模块120,被配置为获取与用户标识匹配的用户权限列表;其中,用户权限列表,包括具有访问权限的路径列表,以及具有访问权限的业务标识列表;

比对模块130,被配置为将访问对象参数中的访问路径与路径列表比对,以及将访问对象参数中的访问业务标识与业务标识列表比对;

第一鉴权模块140,被配置为在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务。

需要说明的是,本公开实施例的用户鉴权装置,可以执行前述实施例中的用户鉴权方法,该用户鉴权装置可以为服务器,也可以配置在服务器中,以对用户的访问请求进行鉴权,提高鉴权速度,且降低权限维护的工作量。

其中,服务器,可以是任意能够进行数据处理的静止或移动计算设备,例如笔记本电脑、可穿戴设备等移动计算设备,或者台式计算机等静止的计算设备,或者其它类型的计算设备,本公开实施例对此不作限定。

需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开实施例的用户鉴权装置,通过获取访问请求中所携带的访问对象参数和用户标识后,获取与用户标识匹配的用户权限列表,其中,用户权限列表包括具有访问权限的路径列表,以及具有访问权限的业务标识列表,再将访问请求中携带的访问对象参数中的访问路径与路径列表比对,将访问对象参数中的访问业务标识与业务标识列表比对,从而在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务,实现了对用户的访问请求的鉴权,提高了鉴权速度,且降低了权限维护的工作量。

图6是根据一示例性实施例所示出的另一种用户鉴权装置的框图。

参照图6,该用户鉴权装置100中,比对模块130,具体可以包括:

第一比对单元1301,被配置为采用第一正则表达式将访问路径与路径列表比对;

查询单元1302,被配置为在路径列表中存在访问路径的前缀时,在访问请求中携带的访问对象参数中查询访问业务标识;

第二比对单元1303,被配置为确定访问请求中携带有访问业务标识的情况下,采用第二正则表达式将访问业务标识与业务标识列表比对。

参照图6,该用户鉴权装置100还可以包括:

第二鉴权模块150,被配置为在路径列表中不存在访问路径的前缀时,确定访问请求鉴权失败;

第三鉴权模块160,被配置为在访问请求中未携带有访问业务标识的情况下,确定访问请求鉴权通过。

参照图6,该用户鉴权装置100还可以包括:

监听模块170,被配置为监听业务平台的访问请求;

拦截模块180,被配置为对所述访问请求进行路由拦截。

参照图6,该用户鉴权装置100中,第二获取模块120,具体可以包括:

获取单元1201,被配置为向设定的接口发送携带用户标识的列表请求,以获取与用户标识匹配的用户权限列表;

添加单元1202,被配置为添加原型属性;其中,原型属性,指向用户权限列表,用于后续再次拦截到携带用户标识的访问请求时,引用原型属性得到用户权限列表。

需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开实施例的用户鉴权装置,通过获取访问请求中所携带的访问对象参数和用户标识后,获取与用户标识匹配的用户权限列表,其中,用户权限列表包括具有访问权限的路径列表,以及具有访问权限的业务标识列表,再将访问请求中携带的访问对象参数中的访问路径与路径列表比对,将访问对象参数中的访问业务标识与业务标识列表比对,从而在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务,实现了对用户的访问请求的鉴权,提高了鉴权速度,且降低了权限维护的工作量。

为了实现上述实施例,本公开实施例还提出了一种服务器。

其中,服务器200包括:

处理器220;

用于存储处理器220可执行指令的存储器210;

其中,处理器220被配置为执行指令,以实现如前所述的用户鉴权方法。

作为一种示例,图7是根据一示例性实施例示出的一种用于用户鉴权的服务器200的框图,如图7所示,上述服务器200,还可以包括:

存储器210及处理器220,连接不同组件(包括存储器210和处理器220)的总线230,存储器210存储有计算机程序,当处理器220执行所述程序时实现本公开实施例所述的用户鉴权方法。

总线230表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

服务器200典型地包括多种服务器可读介质。这些介质可以是任何能够被服务器200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器210还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)240和/或高速缓存存储器250。服务器200可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统260可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线230相连。存储器210可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。

具有一组(至少一个)程序模块270的程序/实用工具280,可以存储在例如存储器210中,这样的程序模块270包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块270通常执行本公开所描述的实施例中的功能和/或方法。

服务器200也可以与一个或多个外部设备290(例如键盘、指向设备、显示器291等)通信,还可与一个或者多个使得用户能与该服务器200交互的设备通信,和/或与使得该服务器200能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口292进行。并且,服务器200还可以通过网络适配器293与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器293通过总线230与服务器200的其它模块通信。应当明白,尽管图7中未示出,可以结合服务器200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理器220通过运行存储在存储器210中的程序,从而执行各种功能应用以及数据处理。

需要说明的是,本实施例的服务器的实施过程和技术原理参见前述对本公开实施例的用户鉴权方法的解释说明,此处不再赘述。

本公开实施例提供的服务器,通过获取访问请求中所携带的访问对象参数和用户标识后,获取与用户标识匹配的用户权限列表,其中,用户权限列表包括具有访问权限的路径列表,以及具有访问权限的业务标识列表,再将访问请求中携带的访问对象参数中的访问路径与路径列表比对,将访问对象参数中的访问业务标识与业务标识列表比对,从而在路径列表中存在访问路径的前缀,且业务标识列表中存在访问业务标识的情况下,确定访问请求鉴权通过,允许以访问路径访问访问业务标识对应的业务,实现了对用户的访问请求的鉴权,提高了鉴权速度,且降低了权限维护的工作量。

为了实现上述实施例,本公开实施例还提出了一种存储介质。

其中,当存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如前所述的用户鉴权方法。

为了实现上述实施例,本公开还提供一种计算机程序产品,该计算机程序由服务器的处理器执行时,使得服务器能够执行如前所述的用户鉴权方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 鉴权方法、用户设备、鉴权装置、鉴权服务器和存储介质
  • 一种物联设备的鉴权方法、鉴权服务器、用户设备服务器
技术分类

06120112480949