一种页面权限控制方法及相关装置
技术领域
本申请涉及页面管理
技术领域
,特别涉及一种页面权限控制方法;还涉及一种页面权限控制装置、设备以及计算机可读存储介质。背景技术
对于同一个平台,不同的用户拥有不同的页面权限时,不同的用户页面上会有不同的菜单选项展示,用户通过点击页面上菜单而跳转到相应的页面。如此看似实现了页面的权限控制,但是当用户直接在浏览器的地址栏输入自身没有权限的页面地址时,用户仍然可以访问自身没有权限的页面,产生用户没有更高级别的权限却可以进行更高级别的操作的问题。因此需进行页面权限控制。
针对页面权限控制,现有技术方案前后端不分离,页面由后端来控制,所有的控制逻辑都在后端,这样极大的增加了后端开发量,有背于web开发的发展方向,不利于快捷式开发,并且技术革新难度大,需要将后端的权限控制逻辑整体迁移。
因此,如何解决上述技术缺陷已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种页面权限控制方法,由前端进行页面权限控制,顺应web开发的发展方向,能够减少后端开发工作量,有效提高开发效率,更便于进行技术革新。本申请的另一个目的是提供一种页面权限控制装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种页面权限控制方法,应用于前端,包括:
拦截页面访问路径;
从后端获取页面权限列表;
判断所述页面权限列表中是否存在所述页面访问路径;
若存在,则跳转到所述页面访问路径对应的目标页面;
若不存在,则禁止跳转到所述页面访问路径对应的所述目标页面。
可选的,所述判断所述页面权限列表中是否存在所述页面访问路径包括:
判断所述页面访问路径是否包含所述页面权限列表中的页面路径字符串;
若不包含,则所述页面权限列表中不存在所述页面访问路径;
若包含,则根据分隔符对所述页面访问路径进行分割与格式转化,得到第一数组;以及根据分割符对所述页面权限列表中所述页面访问路径所包含的所述页面路径字符串进行分割与格式转换,得到第二数组;
判断所述第二数组是否为所述第一数组的子集;
若是,则所述页面权限列表中存在所述页面访问路径;
若否,则所述页面权限列表中不存在所述页面访问路径。
可选的,所述从后端获取页面权限列表包括:
判断本地存储中是否存在token;
若不存在,则返回到登录页面;
若存在,则向所述后端发送携带所述token的网络请求;
接收所述后端响应所述网络请求时返回的所述页面权限列表。
可选的,还包括:
若所述页面权限列表中不存在所述页面访问路径,则跳转到指定页面或发出提示。
可选的,所述拦截页面访问路径包括:
采用vue-router的beforeEach钩子拦截所述页面访问路径。
可选的,还包括:
用户登录成功后,将所述后端返回的token保存到本地存储中,并跳转到用户有权限访问的指定页面。
为解决上述技术问题,本申请还提供了一种页面权限控制装置,包括:
拦截模块,用于拦截页面访问路径;
获取模块,用于从后端获取页面权限列表;
判断模块,用于判断所述页面权限列表中是否存在所述页面访问路径;
跳转模块,用于若存在,则跳转到所述页面访问路径对应的目标页面;
禁止模块,用于若不存在,则禁止跳转到所述页面访问路径对应的所述目标页面。
可选的,所述判断模块包括:
第一判断单元,用于判断所述页面访问路径是否包含所述页面权限列表中的页面路径字符串;
第一确定单元,用于若不包含,则确定所述页面权限列表中不存在所述页面访问路径;
分割与转化单元,用于若包含,则根据分隔符对所述页面访问路径进行分割与格式转化,得到第一数组;以及根据分割符对所述页面权限列表中所述页面访问路径所包含的所述页面路径字符串进行分割与格式转换,得到第二数组;
第二判断单元,用于判断所述第二数组是否为所述第一数组的子集;
第二确定单元,用于若是,则确定所述页面权限列表中存在所述页面访问路径;若否,则确定所述页面权限列表中不存在所述页面访问路径。
为解决上述技术问题,本申请还提供了一种页面权限控制设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述的页面权限控制方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的页面权限控制方法的步骤。
本申请所提供的页面权限控制方法,应用于前端,包括:拦截页面访问路径;从后端获取页面权限列表;判断所述页面权限列表中是否存在所述页面访问路径;若存在,则跳转到所述页面访问路径对应的目标页面;若不存在,则禁止跳转到所述页面访问路径对应的所述目标页面。可见,本申请所提供的页面权限控制方法,由前端进行页面权限控制,实现了前后端分离,开发任务划分更加明确。后端只需负责具体功能的逻辑实现,可有效提高开发效率。后端与前端的升级与革新分别进行,更便于进行技术革新。
本申请所提供的页面权限控制装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种页面权限控制方法的流程示意图;
图2为本申请实施例所提供的一种页面权限控制装置的示意图;
图3为本申请实施例所提供的一种页面权限控制设备的示意图。
具体实施方式
本申请的核心是提供一种页面权限控制方法,由前端进行页面权限控制,顺应web开发的发展方向,能够减少后端开发工作量,有效提高开发效率,更便于进行技术革新。本申请的另一个核心是提供一种页面权限控制装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种页面权限控制方法的流程示意图,参考图1所示,该方法包括:
S101:拦截页面访问路径;
具体的,本申请所提供的页面权限控制方法由前端实现。当用户在登陆页面登陆成功,且要跳转到某一页面之前,前端首先拦截相应的页面访问路径,并在判断用户有该页面的访问权限之后,前端放开路由拦截,进入目标页面。
其中,上述拦截页面访问路径的方式可以为:采用vue-router的beforeEach钩子拦截所述页面访问路径。
具体而言,本实施例基于vue框架实现页面权限控制,采用vue-router的beforeEach钩子拦截页面访问路径。对于vue-router的beforeEach钩子,本申请不做赘述,参考现有的相关技术即可。
S102:从后端获取页面权限列表;
具体的,页面权限列表包含用户拥有访问权限的所有页面的访问路径。不同的用户拥有不同的访问权限时,相应的页面权限列表不同。页面权限列表由后端存储,前端在进行页面权限控制时,从后端获取页面权限列表。
其中,从后端获取页面权限列表的方式可以为:判断本地存储中是否存在token;若不存在,则返回到登录页面;若存在,则向所述后端发送携带所述token的网络请求;接收所述后端响应所述网络请求时返回的所述页面权限列表。
具体而言,前端判断本地存储sessionStroage中是否存在token。如果本地存储sessionStroage中不存在token,则返回到登录页面,如果本地存储sessionStroage中存在token,则进一步向后端发送携带token的网络请求,以请求从后端获取页面权限列表。后端接收前端发送的网络请求后,若后端响应该网络请求,则向前端发送页面权限列表,此时请求返回码为200,表征请求正常。若后端不响应该网络请求,则不向前端发送页面权限列表,此时请求返回码为401,表征请求不正常。当请求返回码为401时,前端进一步返回到登录页面。
S103:判断所述页面权限列表中是否存在所述页面访问路径;
S104:若存在,则跳转到所述页面访问路径对应的目标页面;
S105:若不存在,则禁止跳转到所述页面访问路径对应的所述目标页面。
具体的,在获取到页面权限列表的基础上,判断页面权限列表中是否存在所拦截的页面访问路径。如果存在,则放开路由进入页面访问路径对应的页面。相反,若不存在,则禁止进入页面访问路径对应的页面。
其中,上述判断页面权限列表是否存在页面访问路径的方式可以为:判断所述页面访问路径是否包含所述页面权限列表中的页面路径字符串;若不包含,则所述页面权限列表中不存在所述页面访问路径;若包含,则根据分隔符对所述页面访问路径进行分割与格式转化,得到第一数组;以及根据分割符对所述页面权限列表中所述页面访问路径所包含的所述页面路径字符串进行分割与格式转换,得到第二数组;判断所述第二数组是否为所述第一数组的子集;若是,则所述页面权限列表中存在所述页面访问路径;若否,则所述页面权限列表中不存在所述页面访问路径。
具体而言,遍历页面权限列表,判断所拦截的页面访问路径是否包含页面权限列表中的某个页面访问路径字符串。如果不包含,则页面权限列表中不存在所拦截的页面访问路径,说明没有访问权限。如果包含,则根据页面访问路径中的分隔符,对所拦截的页面访问路径进行分割,将页面访问路径转化为数组格式,得到第一数组。另外,从页面权限列表中筛选出该页面访问路径字符串,并根据页面访问路径字符串中的分隔符,对筛选出的该页面访问路径字符串进行分割,将页面访问路径字符串转化为数组格式,得到第二数组。进一步判断第二数组是否为所述第一数组的子集,如果第二数组是所述第一数组的子集,则页面权限列表中存在所述页面访问路径;如果第二数组不是第一数组的,则所述页面权限列表中不存在所述页面访问路径。
例如,页面权限列表中的页面访问路径包括:‘/my/pages/article’、‘/my/pages/home/index’以及‘/my/pages/details’。其中‘/my/pages/article’为所拦截的页面访问路径包含的页面访问路径字符串,则此时根据分隔符“/”对该页面访问路径字符串进行分割,转化为数组[‘my’,‘pages’,‘article’]。如果数组[‘my’,‘pages’,‘article’]为分割所拦截的页面访问路径得到的第一数组的子集,则表明页面权限列表中存在所述页面访问路径,用户拥有访问权限,相反,则页面权限列表中不存在页面访问路径,用户没有访问权限。
另外,当所述页面权限列表中不存在所述页面访问路径时,还可以跳转到指定页面或向用户发出提示。
进一步,在上述实施例的基础上,还包括:用户登录成功后,将所述后端返回的token保存到本地存储中,并跳转到用户有权限访问的指定页面。即当用户在登录页面进行登录且登录成功后,后端会返回token,收到后端返回的token后,将其保存到本地存储中,并跳转到用户有权限访问的指定页面。
以下通过一个具体的实施例来阐述本技术方案:
用户在登录页面进行登录操作,并在登录成功后,后端向前端返回token。前端将后端返回的token保存到本次存储中,在跳转到某一页面之前,前端拦截页面访问路径,并判断本地存储中是否存在token。如果本地存储中存在token,则向后端发送携带此token的网络请求,以从后端获取页面权限列表。如果本地存储中不存在token,则返回到登录页面。前端从后端获取到页面权限列表后,将拦截的页面访问路径与获取的页面权限列表进行匹配,判断页面权限列表中是否存在所拦截的页面访问路径。如果页面权限列表中存在所拦截的页面访问路径,则放开路由拦截,进入到相应的页面。如果页面权限列表中不存在所拦截的页面访问路径,则跳转到指定页面或者提示用户没有访问权限。
综上所述,本申请所提供的页面权限控制方法,应用于前端,包括:拦截页面访问路径;从后端获取页面权限列表;判断所述页面权限列表中是否存在所述页面访问路径;若存在,则跳转到所述页面访问路径对应的目标页面;若不存在,则禁止跳转到所述页面访问路径对应的所述目标页面。可见,本申请所提供的页面权限控制方法,由前端进行页面权限控制,实现了前后端分离,开发任务划分更加明确。后端只需负责具体功能的逻辑实现,可有效提高开发效率。后端与前端的升级与革新分别进行,更便于进行技术革新。
本申请还提供了一种页面权限控制装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图2,图2为本申请实施例所提供的一种页面权限控制装置的示意图,参考图2所示,该装置包括:
拦截模块10,用于拦截页面访问路径;
获取模块20,用于从后端获取页面权限列表;
判断模块30,用于判断所述页面权限列表中是否存在所述页面访问路径;
跳转模块40,用于若存在,则跳转到所述页面访问路径对应的目标页面;
禁止模块50,用于若不存在,则禁止跳转到所述页面访问路径对应的所述目标页面。
在上述实施例的基础上,可选的,所述判断模块30包括:
第一判断单元,用于判断所述页面访问路径是否包含所述页面权限列表中的页面路径字符串;
第一确定单元,用于若不包含,则确定所述页面权限列表中不存在所述页面访问路径;
分割与转化单元,用于若包含,则根据分隔符对所述页面访问路径进行分割与格式转化,得到第一数组;以及根据分割符对所述页面权限列表中所述页面访问路径所包含的所述页面路径字符串进行分割与格式转换,得到第二数组;
第二判断单元,用于判断所述第二数组是否为所述第一数组的子集;
第二确定单元,用于若是,则确定所述页面权限列表中存在所述页面访问路径;若否,则确定所述页面权限列表中不存在所述页面访问路径。
在上述实施例的基础上,可选的,所述获取模块20包括:
判断单元,用于判断本地存储中是否存在token;
返回单元,用于若不存在,则返回到登录页面;
发送单元,用于若存在,则向所述后端发送携带所述token的网络请求;
接收单元,用于接收所述后端响应所述网络请求时返回的所述页面权限列表。
在上述实施例的基础上,可选的,还包括:
跳转与提示模块,用于若所述页面权限列表中不存在所述页面访问路径,则跳转到指定页面或发出提示。
在上述实施例的基础上,可选的,所述拦截模块10具体用于采用vue-router的beforeEach钩子拦截所述页面访问路径。
在上述实施例的基础上,可选的,还包括:
存储模块,用于用户登录成功后,将所述后端返回的token保存到本地存储中,并跳转到用户有权限访问的指定页面。
本申请还提供了一种页面权限控制设备,参考图3所示,该设备包括存储器1和处理器2。
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:
拦截页面访问路径;从后端获取页面权限列表;判断所述页面权限列表中是否存在所述页面访问路径;若存在,则跳转到所述页面访问路径对应的目标页面;若不存在,则禁止跳转到所述页面访问路径对应的所述目标页面。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
拦截页面访问路径;从后端获取页面权限列表;判断所述页面权限列表中是否存在所述页面访问路径;若存在,则跳转到所述页面访问路径对应的目标页面;若不存在,则禁止跳转到所述页面访问路径对应的所述目标页面。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的页面权限控制方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。