本申请实施例涉及互联网技术领域,尤其涉及一种权限控制方法、装置、介质及电子设备。
背景技术:
随着互联网技术的快速发展,企业级web应用的使用场景逐渐增多。在企业级web应用中常见到的,是使用单一的框架进行开发的。这就会导致权限控制方案单一,如,权限控制方案通过后台管理系统直接传输给前端,当前用户具有固定的页面权限路径。由于其权限菜单列表使用硬编码方式编写在前端代码中,导致用户的跳转权限并不可信,进而一次性读取所有的系统页面资源,使得权限管控方面没有一个较好的措施。
技术实现要素:
本申请实施例提供一种权限控制方法、装置、介质及电子设备,可以通过后台管理系统控制的权限访问的权限菜单列表数据,根据前端用户的权限为前端返回相应的内容,从而可以确保权限的可控性。
第一方面,本申请实施例提供了一种权限控制方法,所述方法包括:
若检测到前端访问事件,确定所述前端是否存在token;
若存在,则根据所述token确定前端访问的权限菜单列表数据;
根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。
进一步的,在若检测到前端访问事件,确定所述前端是否存在token之后,所述方法还包括:
若不存在,则向前端返回登录页面。
进一步的,在根据所述token确定前端访问的权限菜单列表数据之后,所述方法还包括:
若检测到前端地址栏输入非权限内的地址,需要跳转到请求失败页面。
进一步的,在根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染之后,所述方法还包括:
若检测到前端的按钮操作,确定所述按钮操作与所述权限菜单列表数据是否匹配;
若匹配,则根据按钮关联的页面入口,进入页面。
进一步的,在确定所述按钮操作与所述权限菜单列表数据是否匹配之后,所述方法还包括:
若不匹配,则拦截前端发出的按键操作。
进一步的,所述方法还包括:
响应于后台管理系统的配置请求,接收后台管理系统的配置操作,以对前端用户的权限资源进行配置。
进一步的,在对前端用户的权限资源进行配置之后,所述方法还包括:
响应于后台管理系统的配置的修改请求,接收修改操作,以对前端用户的权限资源进行修改调整。
第二方面,本申请实施例提供了一种权限控制装置,所述装置包括:
令牌检查模块,用于若检测到前端访问事件,确定所述前端是否存在token;
权限获取模块,用于若所述令牌检查模块检查结果为存在,则根据所述token确定前端访问的权限菜单列表数据;
页面显示模块,用于根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的权限控制方法。
第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的权限控制方法。
本申请实施例所提供的技术方案,若检测到前端访问事件,确定所述前端是否存在token;若存在,则根据所述token确定前端访问的权限菜单列表数据;根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。通过执行本技术方案,可以通过后台管理系统控制的权限访问的权限菜单列表数据,根据前端用户的权限为前端返回相应的内容,从而可以确保权限的可控性。
附图说明
图1是本申请实施例一提供的一种权限控制方法的流程图;
图2是本申请实施例一提供的页面访问的流程图;
图3是本申请实施例二提供的一种权限控制装置的结构示意图;
图4是本申请实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本申请实施例一提供的一种权限控制方法的流程图,本实施例可适用于网络资源权限控制的情况,该方法可以由本申请实施例所提供的权限控制装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于电子设备中。
如图1所示,所述权限控制方法包括:
s110、若检测到前端访问事件,确定所述前端是否存在token。
在本实施例中,前端可以是基于qiankun框架开发的,qiankun框架是一个基于single-spa的微前端实现库,旨在能更简单、无痛的构建一个生产可用微前端架构系统,减少团队间的依赖,独立部署不同的服务,实现自治团队。qiankun框架具备独立迭代和创新能力的特点,使其能够围绕业务部门或产品来打造团队。qiankun框架可以帮助开发人员更快速、便捷的进行web系统的开发。利用微应用技术的根据模块选择加载框架特点,从后台角色权限针对加载当前权限可用的模块。因此,只加载当前权限菜单内的页面资源,可以加快页面打开速度,提高用户体验。同时在开发上可将系统不同权限对应模块分开构建开发,开发团队针对不同的模块开发应用,并单独进行更新部署,能确保系统的正常运行。
本方案中,前端可以是web页面,也可以是通过应用程序打开的应用程序页面。在检测到用户通过前端访问页面时,可以确定所述前端是否存在token。其中,token是服务端生成的一串字符串,以作为客户端进行请求的一个令牌,当第一次登录后,服务器生成一个token便将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
s120、若存在,则根据所述token确定前端访问的权限菜单列表数据。
在本实施例中,如果存在,则说明用户已经登录过账号,因此,可以将其登录的账号用来作为获取权限菜单列表数据的基础。
其中,权限菜单列表数据,可以是针对具有不同权限的用户,涉及可以看到不同的功能菜单,例如张三看到a、b、c菜单,李四看到b、c菜单,王五和肖六看到a、b、c菜单,将其汇总为表格,则形成权限菜单列表数据。在此基础上,在配置的过程中,可以使用角色的访问控制(role-basedaccesscontrol),是优秀的权限控制模型,主要通过角色和权限建立管理,再赋予用户不同的角色,来实现权限控制的目标。利用该模型来配置权限,直接优点是角色的数量比用户的数量更少,先把权限赋予角色,即可完成权限的分配;再为用户分配相应的角色,即可直接获得角色拥有的权限。
在本技术方案中,可选的,在若检测到前端访问事件,确定所述前端是否存在token之后,所述方法还包括:
若不存在,则向前端返回登录页面。
具体的,用户第一步进入系统时,首先判断其浏览器是否存在token,如果存在则使用之前的授权,获取该用户的权限列表,主应用渲染页面,直接进入默认页面,如果不存在则进入登陆页。
这里的做法是用户登录后获得一个token,存储在本地缓存中。用户刷新页面将直接刷新页面,并使用本地token授权,并重新获取权限数据,如果本地token失效,那么后端应该返回401状态码,前端跳回登陆界面。这样设置的好处是可以确保用户登录信息的可靠性。
s130、根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。
在得到权限菜单列表数据,可以对前端需要访问页面的菜单和/或按钮进行加载渲染。其中,菜单可以是用来确定可以访问的页面和数据的菜单,而按钮,可以理解为是页面显示内容的一部分,例如某用户不具备签约权限,则可以在签约按钮的位置,显示空白而不显示该按钮,从而可以实现对前端用户的权限的合理控制。
图2是本申请实施例一提供的页面访问的流程图,如图2所示,在初始化主页面框架之后,可以检查本地是否存在token,若存在,则直接根据token获取权限菜单列表数据。若不存在,则可以跳转至登录页。登录成功后,会返回token,并可以在前端的本地存储,并获取权限菜单列表数据。
从获取权限菜单列表数据到加载权限页面之间,可以对用户权限初始化,分别实现动态路由及菜单的加载渲染,实现全局权限验证方法及指令,以及实现全局请求拦截。
因为采用的是动态路由方案,当动态路由注入时异步路由组件会开始加载,首次访问通常是加载首页组件,如果是用户刷新,地址栏还保留着之前浏览的的url网址,那么动态路由注入后也会正确的加载对应的路由组件,显示对应的界面。
本申请实施例所提供的技术方案,若检测到前端访问事件,确定所述前端是否存在token;若存在,则根据所述token确定前端访问的权限菜单列表数据;根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。通过执行本技术方案,可以通过后台管理系统控制的权限访问的权限菜单列表数据,根据前端用户的权限为前端返回相应的内容,从而可以确保权限的可控性。
在上述各技术方案的基础上,可选的,在根据所述token确定前端访问的权限菜单列表数据之后,所述方法还包括:
若检测到前端地址栏输入非权限内的地址,需要跳转到请求失败页面。
在登录请求中,获得用户的权限数据,前端根据权限数据,只显示当前用户能访问的权限内菜单。
其中,如果前端输入的地址为当前用户权限以外的地址,则确定为输入非权限内的地址,则在这种情况下,可以返回请求失败页面,如跳转到404页面。此方案不仅适用于已经登录的情况。如果用户没有登录,手动在地址栏输入管理界面的地址,需要跳转到登录页面。
在上述各技术方案的基础上,可选的,在根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染之后,所述方法还包括:
若检测到前端的按钮操作,确定所述按钮操作与所述权限菜单列表数据是否匹配;
若匹配,则根据按钮关联的页面入口,进入页面。
在权限内界面中,还需要根据用户权限数据,对页面上的按钮做权限管理。例如,用户不具备权限的按钮,可以通过显示空白,不显示该按钮,来避免该用户的超过权限的操作,从而可以确保前端权限的可控性。
在上述各技术方案的基础上,可选的,在确定所述按钮操作与所述权限菜单列表数据是否匹配之后,所述方法还包括:
若不匹配,则拦截前端发出的按键操作。
在一种极特殊的情况下,如果用户通过非常规操作,比如通过浏览器调试工具将非权限内的按钮变成启用状态,并发送相应的请求,也应该被前端拦截。
在上述各技术方案的基础上,可选的,所述方法还包括:
响应于后台管理系统的配置请求,接收后台管理系统的配置操作,以对前端用户的权限资源进行配置。
在一个具体实例中,后台管理系统可以包括系统资源管理配置,角色管理配置以及用户管理配置等,对于系统资源管理配置,可以根据系统业务粗粒度权限配置资源,如该资源属于菜单/url连接/页面中按钮,路由路径以及所属微应用的端口。对于角色管理配置,可以选择角色配置角色拥有的系统资源。对于用户管理配置,可以给用户设定当前的角色,进而基于角色进行相应的系统资源管理。
在上述各技术方案的基础上,可选的,在对前端用户的权限资源进行配置之后,所述方法还包括:
响应于后台管理系统的配置的修改请求,接收修改操作,以对前端用户的权限资源进行修改调整。
本方案中,用户登陆系统后,只能查看和操作本身的权限所有的菜单,按钮。当某个系统模块代码需要修改时,系统实施人员可特定的更新该系统模块的业务代码,无需全部业务功能更新和停机重启。从而可以确保对于权限控制的灵活性。
本方案能提高系统开发效率,提升系统运作能力,提供一种更高效的权限控制方案。
实施例二
图3是本申请实施例二提供的一种权限控制装置的结构示意图。如图3所示,权限控制装置包括:
令牌检查模块310,用于若检测到前端访问事件,确定所述前端是否存在token;
权限获取模块320,用于若所述令牌检查模块310检查结果为存在,则根据所述token确定前端访问的权限菜单列表数据;
页面显示模块330,用于根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例三
本申请实施例三还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种权限控制方法,该方法包括:
若检测到前端访问事件,确定所述前端是否存在token;
若存在,则根据所述token确定前端访问的权限菜单列表数据;
根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。
存储介质是指任何的各种类型的存储器电子设备或存储电子设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddrram、sram、edoram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同未知中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的权限控制操作,还可以执行本申请任意实施例所提供的权限控制方法中的相关操作。
实施例四
本申请实施例四提供了一种电子设备,该电子设备中可集成本申请实施例提供的权限控制装置,该电子设备可以是配置于系统内的,也可以是执行系统内的部分或者全部功能的设备。图4是本申请实施例四提供的一种电子设备的结构示意图。如图4所示,本实施例提供了一种电子设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器420执行,使得所述一个或多个处理器420实现本申请实施例所提供的权限控制方法,该方法包括:
若检测到前端访问事件,确定所述前端是否存在token;
若存在,则根据所述token确定前端访问的权限菜单列表数据;
根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。
当然,本领域技术人员可以理解,处理器420还实现本申请任意实施例所提供的权限控制方法的技术方案。
图4显示的电子设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,该电子设备400包括处理器420、存储装置410、输入装置430和输出装置440;电子设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;电子设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。
存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的权限控制方法对应的程序指令。
存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏、扬声器等电子设备。
本申请实施例提供的电子设备,可以通过后台管理系统控制的权限访问的权限菜单列表数据,根据前端用户的权限为前端返回相应的内容,从而可以确保权限的可控性。
上述实施例中提供的权限控制装置、介质及电子设备可执行本申请任意实施例所提供的权限控制方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的权限控制方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
1.一种权限控制方法,其特征在于,包括:
若检测到前端访问事件,确定所述前端是否存在token;
若存在,则根据所述token确定前端访问的权限菜单列表数据;
根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。
2.根据权利要求1所述的方法,其特征在于,在若检测到前端访问事件,确定所述前端是否存在token之后,所述方法还包括:
若不存在,则向前端返回登录页面。
3.根据权利要求1所述的方法,其特征在于,在根据所述token确定前端访问的权限菜单列表数据之后,所述方法还包括:
若检测到前端地址栏输入非权限内的地址,需要跳转到请求失败页面。
4.根据权利要求1所述的方法,其特征在于,在根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染之后,所述方法还包括:
若检测到前端的按钮操作,确定所述按钮操作与所述权限菜单列表数据是否匹配;
若匹配,则根据按钮关联的页面入口,进入页面。
5.根据权利要求4所述的方法,其特征在于,在确定所述按钮操作与所述权限菜单列表数据是否匹配之后,所述方法还包括:
若不匹配,则拦截前端发出的按键操作。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于后台管理系统的配置请求,接收后台管理系统的配置操作,以对前端用户的权限资源进行配置。
7.根据权利要求6所述的方法,其特征在于,在对前端用户的权限资源进行配置之后,所述方法还包括:
响应于后台管理系统的配置的修改请求,接收修改操作,以对前端用户的权限资源进行修改调整。
8.一种权限控制装置,其特征在于,包括:
令牌检查模块,用于若检测到前端访问事件,确定所述前端是否存在token;
权限获取模块,用于若所述令牌检查模块检查结果为存在,则根据所述token确定前端访问的权限菜单列表数据;
页面显示模块,用于根据所述权限菜单列表数据,对前端访问页面的菜单和/或按钮进行加载渲染。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的权限控制方法。
10.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的权限控制方法。
技术总结