发明内容
针对上述技术问题,本发明采用的技术方案为:一种路由权限的控制方法,应用于客户端,所述客户端包括拦截器和静态页面注册的N个路由RL,其中RL包括N1个限制用户权限的路由RLL={RLL1,RLL2,…,RLLq,…,RLLN1}和N2个不限制用户权限的路由,RLLq为第q个限制用户权限的路由,q的取值范围为1到N1,且N1+N2=N;所述方法包括以下步骤:
S100,向后端服务器发送用户ui的登录请求,所述登录请求中包括用户ui的身份信息;所述用户ui的身份信息用于触发后端服务器对ui进行身份验证,且在身份验证通过时返回后端服务器保存的用户ui可访问的用户权限列表RLui={RLui,1,RLui,2,…,RLui,j,…,RLui,M},RLui,j为用户ui可访问的第j个路由,其中j的取值范围为1到M,M为用户ui可访问路由数量,且满足RLui,j≠RLui,k,其中RLui,k为用户ui可访问的第k个路由,k的取值范围为1到M,且k≠j;其中RLL包含RLui中的所有路由。
S200,接收用户ui对应的用户权限列表RLui并缓存。
S300,当获取到用户ui输入的路由r时,遍历客户端缓存的RLui中的路由,判断r是否包含在客户端缓存的RLui中,若是,则允许访问路由r;否则,由拦截器拦截对路由r的访问。
本发明实施例还提供了一种路由权限的控制方法,应用于后端服务器,后端服务器包括路由权限列表和用户权限列表RLu={RLu1,RLu2,…,RLui,…,RLus},RLui为用户ui的用户权限列表,i的取值范围为1到s,s为用户表中用户的数量;路由权限列表包括所有限制用户权限的路由;当接收到客户端发送的用户ui的登录请求时,对用户ui的身份进行验证并在验证通过时,返回用户ui的用户权限列表RLui={RLui,1,RLui,2,…,RLui,j,…,RLui,M},使客户端缓存RLui;其中,RLui,j为用户ui可访问的第j个路由,其中j的取值范围为1到M,M为用户ui可访问路由数量,且满足RLui,j≠RLui,k,其中RLui,k为用户ui可访问的第k个路由,k的取值范围为1到M,且k≠j;其中,客户端包括静态页面注册的N1个限制用户权限的路由RLL,RLL包含RLui中的所有路由;当用户ui访问的路由r与RLui,j不同时进行拦截。
此外,本发明实施例还提供了一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述任意一种路由权限的控制方法。
此外,本发明实施例还提供了一种电子设备,包括处理器和上述非瞬时性计算机可读存储介质。
本发明至少具有以下有益效果:
本发明实施例提供的一种权限控制方法,其在客户端缓存了用户权限列表,在进行权限控制的过程中只需要将输入的路由与缓存的用户权限列表进行比对即可,也即在权限控制时客户端能够单独完成,提高了权限控制的速度,减少了客户端和后端服务器之间的数据交互,进一步,还能够降低客户端对后端服务器的依赖,降低后端服务器的工作压力。而后端服务器存储了由所有限制权限的路由构成的路由权限列表,以及所有用户的用户权限列表;后端服务器在进行权限的变更时,后端服务器也能够独立完成,不需要客户端的参与,减轻了后端服务器的负担。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1示出了本发明实施例提供的一种路由权限的控制方法,应用于客户端,客户端包括拦截器和静态页面注册的N个路由RL,其中RL包括N1个限制用户权限的路由RLL={RLL1,RLL2,…,RLLq,…,RLLN1}和N2个不限制用户权限的路由,RLLq为第q个限制用户权限的路由,q的取值范围为1到N1,且N1+N2=N。
其中,客户端为应用程序客户端。可以理解的是,客户端安装在终端,终端可以安装应用程序客户端,或者安装浏览器并通过浏览器访问应用程序的网页客户端。其中,终端可以是手机、计算机、播放器等。
其中,客户端中静态页面注册N个路由RL的步骤包括:
S010,向前端服务器发送页面请求,使前端服务器在接收到页面请求后返回静态页面。
S020,接收静态页面,并进行初始化,注册N个路由RL。其中,静态页面为无需经过前端服务器和后端服务器的编译,直接加载到客户端上显示的页面。其中,静态页面中包括文本、图像和js文件等,js文件中包括N个路由RL,其中客户端在接收到静态页面之后会根据js文件自动初始化,在初始化的过程中将js文件中的路由注册到客户端。
进一步,所述方法包括以下步骤:
S100,向后端服务器发送用户ui的登录请求,登录请求中包括用户ui的身份信息;用户ui的身份信息用于触发后端服务器对ui进行身份验证,且在身份验证通过时返回后端服务器保存的用户ui可访问的用户权限列表RLui={RLui,1,RLui,2,…,RLui,j,…,RLui,M},RLui,j为用户ui可访问的第j个路由,其中j的取值范围为1到M,M为用户ui可访问路由数量,且满足RLui,j≠RLui,k,其中RLui,k为用户ui可访问的第k个路由,k的取值范围为1到M,且k≠j;其中RLL包含RLui中的所有路由。
其中,客户端接收到后端服务器反馈的用户ui身份验证通过时,生成默认登录页面,默认登录页面的路由为RLui中提前指定的路由。例如,RLui中用户ui可访问的第一个路由RLui,1为默认登录页面的路由,指定在用户身份验证通过之后直接访问路由RLui,1,默认登录页面不做拦截。
可选的,身份验证的方法为根据用户名和密码查找数据库中是否已经存在相应的用户名和密码,若存在,则验证通过;否则,验证失败。现有技术中能够实现身份验证的其他方式也在本发明的保护范围之内。
需要说明的是,在后端服务器中保存了所有限制用户权限的路由,以及不同用户对应的用户权限列表。不同用户的权限列表可以相同,也可以不同。在身份验证通过时,后端服务器根据用户ui的登录请求信息中携带的用户名查询保存的用户权限列表,得到用户ui对应的用户权限列表。
S200,接收用户ui对应的用户权限列表RLui并缓存。
需要说明的是,用户权限列表RLui中的路由已经由客户端的静态页面提前注册到客户端,不需要再次注册,将返回的RLui缓存到客户端的本地端,以便于控制用户权限。
可以理解的是,用户每次登录都需要进行身份验证,用户每次登录都会对客户端缓存的RLui进行更新。当对RLui进行变更操作之后,用户ui再次登录页面时,客户端缓存的RLui会被更新为变更后的RLui。其中,对RLui的变更操作包括增加用户ui可访问的路由、删除用户ui可访问的路由、修改用户ui可访问的路由。
S300,当获取到用户ui输入的路由r时,遍历客户端缓存的RLui中的路由,判断r是否包含在客户端缓存的RLui中,若是,则允许访问路由r;否则,由拦截器拦截对路由r的访问。
可选的,用户ui输入的路由r的获取步骤包括:获取在指定地址栏输入的路由r,或者触发默认登录页面中的菜单或者按钮得到路由r。
其中,客户端根据路由r生成菜单或者按钮。
其中,拦截器可以是使当前路由跳转到预设的拦截界面。现有技术中实现拦截功能的拦截器均在本发明的保护范围之内。
需要说明的是,若r包含在客户端缓存的RLui中,则说明用户ui具有该路由的访问权限,不需要拦截,正常跳转访问相应的页面;若r未包含在客户端缓存的RLui中,则说明用户ui不具有路由r的访问权限,需要使用拦截器对路由r进行拦截,此种方式确保用户ui只能看到自己有权限浏览的内容和有权限操作的路由页面,同时在能够拦截页面中限制权限的菜单和按钮的基础上,还可以进一步拦截用户在地址栏输入的路由,避免路由被非法访问或者篡改,保护系统信息安全。
该种权限控制的方式,对于开发人员来说更加友好,在开发相应页面时,客户端和后端服务器可以单独开发。具体的,对于客户端,将用户的所有权限在客户端完成注册即可,不需要考虑后端服务器的注册情况;对于后端服务器,维护路由权限列表和用户权限列表即可,不需要考虑客户端的情况,客户端和后端服务器之间的耦合关系被大幅度降低,达到了客户端和后端服务器单独开发的目的。
综上所述,本实施例在客户端中包括静态页面注册的所有限制权限的路由和不限制权限的路由,在用户登录时的身份验证通过后由客户端缓存后端服务器返回的用户的用户权限列表且不需要再次注册路由,在获取到用户输入的路由时,将输入的路由与已缓存的路由进行比对,并利用拦截器拦截不在客户端缓存的用户权限列表中的路由,以实现对路由的权限控制。在进行权限控制的过程中只需要将输入的路由与缓存的用户权限列表进行比对,在客户端单独完成,提高权限验证的速度,并且不需要后端服务器参与验证的过程,减少了客户端和后端服务器之间的数据交互,不仅能够降低客户端对后端服务器的依赖,而且能够直接降低后端服务器的工作压力。
实施例二
一种路由权限的控制方法,应用于后端服务器,后端服务器包括路由权限列表和用户权限列表RLu={RLu1,RLu2,…,RLui,…,RLus},RLui为用户ui的用户权限列表,i的取值范围为1到s,s为用户表中用户的数量;路由权限列表包括所有限制用户权限的路由;当接收到客户端发送的用户ui的登录请求时,对用户ui的身份进行验证并在验证通过时,返回用户ui的用户权限列表RLui={RLui,1,RLui,2,…,RLui,j,…,RLui,M},使客户端缓存RLui;其中,RLui,j为用户ui可访问的第j个路由,其中j的取值范围为1到M,M为用户ui可访问路由数量,且满足RLui,j≠RLui,k,其中RLui,k为用户ui可访问的第k个路由,k的取值范围为1到M,且k≠j;其中,客户端包括静态页面注册的N1个限制用户权限的路由RLL,RLL包含RLui中的所有路由;当用户ui访问的路由r未包含在客户端缓存的RLui中时进行拦截。
进一步,当增加用户ui可访问的路由r´时,执行以下步骤:
S420,从后端服务器中保存的路由权限列表中获取r´。
S440,获取RLui,将r´作为用户ui可访问的第M+1个路由加入RLui。
需要说明的是,由于在静态页面注册的路由RLL中已经包含了所有用户的所有权限,当需要新增用户权限时,只需要在后端服务器的用户权限列表中增加相应用户的权限,当用户登录时更新到客户端即可完成权限的新增,不需要重新注册用户路由,使客户端和后端服务器对用户权限的处理上直接分离,减少了耦合关系,同时由于两端之间的耦合关系减少提高了在修改路由权限的效率。
进一步,当删除用户ui可访问的路由r1时,执行以下步骤:
S620,获取后端服务器保存的RLui;
S640,删除RLui中r1对应的路由。
同理,当删除相应权限时,也是只需要更新用户的用户权限列表即可完成权限的更新,不需要重新注册路由的过程。进一步,对于用户权限的增删改的变更操作,只需要修改后端服务器中保存的用户的用户权限列表即可,减少了客户端与后端服务器之间的耦合关系,节省了大量的软硬件资源。
进一步,当将用户ui可访问的路由中的路由r1修改为r'时,执行步骤S620-S640,以及S420-S440。
其中,本实施例中增加、删除或修改用户ui的路由权限只需要在后端服务器中查找用户ui的用户权限列表,对用户权限列表做增加路由、删除路由或者修改路由的操作;相比于现有技术在开发阶段每新增一个路由都需要先注册到后端的权限列表并返回前端进行注册,并且只有在返回前端之后才能新增下一个路由,当修改用户的路由权限时,首先在后端服务器将需要被修改的路由替换为新的路由,在后端服务器完成对路由权限的判断,将路由注册到前端;本实施例后端服务器可以独立完成用户路由权限的增加、删除和修改,提高了校验效率。
综上所述,本实施例提供的一种路由权限的控制方法,后端服务器存储了由所有限制权限的路由构成的路由权限列表,以及所有用户的用户权限列表;当后端服务器对用户身份验证通过时,向客户端返回用户的用户权限列表RLui,使客户端缓存RLui,在对用户的路由权限进行更改时后端服务器可独立完成,不需要客户端的参与,提高了权限更改的效率,减少了与客户端的交互,减轻了后端服务器的负担。
本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例还提供一种计算机程序产品,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。