欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种Web路由保护方法、系统、终端及存储介质独创技术18978字

一种Web路由保护方法、系统、终端及存储介质

2021-04-02 17:05:00

一种Web路由保护方法、系统、终端及存储介质

  技术领域

  本发明涉及Web页面跳转技术领域,具体涉及一种Web路由保护方法、系统、终端及存储介质。

  背景技术

  SPA是web端单页面应用,其特点是路由之间的跳转并非通过浏览器强制刷新机制实现。通常,在构建SPA单页面应用时,需要保护某些路由,也就是在跳转某一个页面之前,需要先判断该用户是否有权限进入该页面,如果有权限,则直接跳转,如果没有权限则跳转到无权限页面或者是其他的提示性页面。这种方法需要在每一个需要路由跳转的页面都要进行权限的判断,会产生大量冗余的编码。针对有些条件需要同时满足的,比如某用户只有登录且订阅某篇文章才可以进入文章详情页,传统方法并不便利,并且后期编码也不易于维护。

  发明内容

  针对现有技术的上述不足,本发明提供一种Web路由保护方法、系统、终端及存储介质,以解决上述技术问题。

  第一方面,本发明提供一种Web路由保护方法,包括:

  预先设置各类路由路径的校验规则,并将所述校验规则封装为抽象方法;

  拦截用户的页面跳转指令;

  从所述跳转指令提取用户信息和权限;

  从所述跳转指令提取目标路由路径,调取所述目录路由路径的对应抽象方法对所述用户信息和权限进行校验;

  将通过校验的跳转指令通过所述目标路由路径跳转至目标页面。

  进一步的,所述预先设置各类路由路径的校验规则,包括:

  为每条路由路径制定校验规则,并将每个校验规则均封装为一个抽象方法;

  定义路由的类别;

  为每个类别下的路由路径设置一个路由元字段的容器;

  将路由路径的对应抽象方法保存至所述路由路径的容器中。

  进一步的,所述从跳转指令提取用户信息和权限,包括:

  将所述用户信息缓存至用户信息容器;

  将所述权限缓存至权限容器。

  进一步的,所述调取目标路由路径的对应校验规则对所述用户信息和权限进行校验,包括:

  采集所述目标路由路径的元字段;

  将所述元字段的容器中的每个抽象方法均与所述用户信息和权限封装为中间件;

  将所述中间件分配至执行器的执行变量,所述执行器通过创建中间件管道执行所有中间件。

  进一步的,所述方法还包括:

  若所述目标路由路径存在多个对应校验规则,则判断所述用户信息和权限是否通过所有对应校验规则的校验:

  若是,则判定所述目标路由路径通过校验;

  若否,则判定所述目标路由路径未通过校验,并跳转至失败提示页面。

  第二方面,本发明提供一种Web路由保护系统,包括:

  规则设置单元,配置用于预先设置各类路由路径的校验规则,并将所述校验规则封装为抽象方法;

  指令拦截单元,配置用于拦截用户的页面跳转指令;

  信息提取单元,配置用于从所述跳转指令提取用户信息和权限;

  规则调取单元,配置用于从所述跳转指令提取目标路由路径,调取所述目录路由路径的对应抽象方法对所述用户信息和权限进行校验;

  页面跳转单元,配置用于将通过校验的跳转指令通过所述目标路由路径跳转至目标页面。

  进一步的,所述规则设置单元包括:

  规则封装模块,配置用于为每条路由路径制定校验规则,并将每个校验规则均封装为一个抽象方法;

  类别定义模块,配置用于定义路由的类别;

  容器设置模块,配置用于为每个类别下的路由路径设置一个路由元字段的容器;

  方法保存模块,配置用于将路由路径的对应抽象方法保存至所述路由路径的容器中。

  进一步的,所述规则调取单元包括:

  字段采集模块,配置用于采集所述目标路由路径的元字段;

  中间封装模块,配置用于将所述元字段的容器中的每个抽象方法均与所述用户信息和权限封装为中间件;

  方法执行模块,配置用于将所述中间件分配至执行器的执行变量,所述执行器通过创建中间件管道执行所有中间件。

  第三方面,提供一种终端,包括:

  处理器、存储器,其中,

  该存储器用于存储计算机程序,

  该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

  第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

  本发明的有益效果在于,

  本发明提供的Web路由保护方法、系统、终端及存储介质,通过将用户信息保存在状态管理器中;将写好的用于校验用户合法性的中间件放入路由器的元数据中;最后在路由拦截器中执行中间件执行器,在中间件执行器循环调用一个个中间件,根据状态管理器中用户保存的信息来校验中间件,从而实现对所有页面跳转指令的快速审核。本发明将通过将校验规则封装为抽象方法,使得SPA应用中路由保护更加灵活、方便。并通过将抽象方法封装为中间件,方便前端开发人员快速定位问题,同时中间件集中在一起并行执行大大提高了编码的可维护性。

  此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

  附图说明

  为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

  图1是本发明一个实施例的方法的示意性流程图。

  图2是本发明一个实施例的方法的示意性流程图。

  图3是本发明一个实施例的系统的示意性框图。

  图4为本发明实施例提供的一种终端的结构示意图。

  具体实施方式

  为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

  图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种Web路由保护系统。

  如图1所示,该方法100包括:

  步骤110,预先设置各类路由路径的校验规则,并将所述校验规则封装为抽象方法;

  步骤120,拦截用户的页面跳转指令;

  步骤130,从所述跳转指令提取用户信息和权限;

  步骤140,从所述跳转指令提取目标路由路径,调取所述目录路由路径的对应抽象方法对所述用户信息和权限进行校验;

  步骤150,将通过校验的跳转指令通过所述目标路由路径跳转至目标页面。

  本实施例主要包括状态管理器、路由拦截器和中间执行器,其中状态管理器用于保存程序运行的状态的容器,它允许我们确定用户是否经过身份验证以及检查用户是否已订阅;路由拦截器可以在入口文件中进行全局拦截,也就是可进行全局路由导航的守卫;中间件执行器可以批量执行中间件,针对多条件验证情况下,可以将每个验证条件都封装成中间件,根据在路由器元字段中的存放顺序依次执行各个中间件。

  具体的,所述Web路由保护方法包括:

  S1、创建状态管理器,步骤如下;

  创建一个state容器,该容器用于存放用户登录后的数据,比如用户角色、用户是否订阅等权限;

  创建一个getter容器,该容器用于用户获取存入state中的角色以及权限等数据。

  S2、创建中间件,步骤如下;

  获取状态管理器中的用户保存的数据(用户信息及权限)。

  创建抽象方法,抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。如果有多个判断条件,则创建多个抽象方法,在该方法中与步骤b获取到的状态管理器中的数据做对比,如果要去往的路由满足条件,则在该方法中抛出成功标识,否则抛出失败标识。

  中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。本实施例中的中间件在执行时,即抽象方法对用户信息和权限进行校验。

  S3、创建路由器,步骤如下;

  创建一个定义路由的类,将每一个页面级别的组件引入到该类中,并配置上每一个页面对应的路径,在每一个路径下面设置一个路由元字段的容器。

  将步骤S2中的中间件引入到路由器中页面所对应路径的元字段容器中。

  S4、创建中间件执行器,步骤如下;

  检查当前正在处理的路由是否有一个包含中间件的元字段。如果找到该元字段,就将它里面的中间件分配给某一个变量。

  获取步骤a中的带有中间件的变量,创建中间件管道,中间件管道是一堆彼此并行运行的不同的中间件。管道用于循环执行各个中间件里的抽象方法。

  S5、创建路由拦截器,该拦截器用于路由的导航保护,这些导航保护主要通过重定向或取消路由的方式来保护路由。未通过校验的页面跳转指令将被取消,直接跳转至失败提示页面。

  本发明执行步骤示意图如附图2所示。

  首先,当用户点击跳转时,会进入路由拦截器,若用户已登录,则将用户信息存入状态管理器;获取路由器元字段中储存的中间件集合,这里的中间件实质上是对校验条件的抽象封装;在通过中间件执行器按照中间件集合中的顺序依次执行中间件,如果所有中间件均抛出正常标识,则允许用户跳转,否则只要存在一个抛出结果为失败,则不允许用户跳转,将路由链接重定向到无权限页面。

  如图3所示,该系统300包括:

  规则设置单元310,配置用于预先设置各类路由路径的校验规则,并将所述校验规则封装为抽象方法;

  指令拦截单元320,配置用于拦截用户的页面跳转指令;

  信息提取单元330,配置用于从所述跳转指令提取用户信息和权限;

  规则调取单元340,配置用于从所述跳转指令提取目标路由路径,调取所述目录路由路径的对应抽象方法对所述用户信息和权限进行校验;

  页面跳转单元350,配置用于将通过校验的跳转指令通过所述目标路由路径跳转至目标页面。

  可选地,作为本发明一个实施例,所述规则设置单元包括:

  规则封装模块,配置用于为每条路由路径制定校验规则,并将每个校验规则均封装为一个抽象方法;

  类别定义模块,配置用于定义路由的类别;

  容器设置模块,配置用于为每个类别下的路由路径设置一个路由元字段的容器;

  方法保存模块,配置用于将路由路径的对应抽象方法保存至所述路由路径的容器中。

  可选地,作为本发明一个实施例,所述规则调取单元包括:

  字段采集模块,配置用于采集所述目标路由路径的元字段;

  方法输入模块,配置用于将所述元字段的容器中所有抽象方法输入执行器;

  方法执行模块,配置用于所述执行器通过创建中间件管道执行对所述用户信息和权限执行所有抽象方法。

  图4为本发明实施例提供的一种终端400的结构示意图,该终端400可以用于执行本发明实施例提供的Web路由保护方法。

  其中,该终端400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

  其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。

  处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器410可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。

  通信单元430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

  本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。

  因此,本发明通过将用户信息保存在状态管理器中;将写好的用于校验用户合法性的中间件放入路由器的元数据中;最后在路由拦截器中执行中间件执行器,在中间件执行器循环调用一个个中间件,根据状态管理器中用户保存的信息来校验中间件,从而实现对所有页面跳转指令的快速审核。本发明将中间件引入路由保护中,使得SPA应用中路由保护更加灵活、方便。将路由保护的判断条件以中间件的形势抽象出来,利于多检验条件的扩展,每个中间件规整且语义化,通过中间件的名字即可确认该中间件的功能,方便前端开发人员快速定位问题。同时中间件集中在一起大大提高了编码的可维护性,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

  本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

  本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

  在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

  所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

  另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

  尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

《一种Web路由保护方法、系统、终端及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)