一种基于web架构的权限管理方法及系统与流程

文档序号:26918894发布日期:2021-10-09 16:25阅读:132来源:国知局
一种基于web架构的权限管理方法及系统与流程

1.本发明涉及web系统权限管理技术领域,特别是一种基于web架构的权限管理方法及系统。


背景技术:

2.当前web系统大多采用基于角色进行权限管理的方案,浏览器端配置好角色可以访问的页面,服务器端也需要配置角色的权限。当用户登录的时候,浏览器端根据配置好的角色权限,显示可操作的页面。当用户访问页面、发起请求时,服务器端再次进行角色权限校验。这是一个浏览器端和服务器端同时进行权限管理的方案,且两个端的权限校验过程是完全分离的,浏览器端根据配置好的角色权限展示对应的页面给用户,服务器端根据数据库中配置好的角色权限进行权限校验。
3.上述介绍的权限管理方案,能根据用户角色进行权限管理,不能角色赋予不同的权限。但仅仅依据角色进行权限管理,始终存在一定的局限性。
4.浏览器端配置完角色权限,虽然不同角色用户能看到的浏览器端页面是不同的,但相同的角色用户能看到的浏览器端菜单、页面是相同的,并且是固定的、不可改变的。
5.服务器端在数据库中保存角色的权限记录,当用户发起请求时,服务器端根据用户角色从数据库中匹配id获取角色权限,从而进行校验。服务器端的权限校验过程也仅仅依据角色完成。
6.如果需要增加业务权限,上述介绍的方案,需要重新编码配置权限,非常繁琐。或者如果业务比较复杂,需要动态的进行权限管理,动态地进行权限切换,上述介绍的方案也是无法满足要求的。基于此本文提出了一种更为灵活、扩展性更强的权限管理方案。


技术实现要素:

7.为克服上述问题,本发明的目的是提供一种能够对用户进行动态业务权限管理的方法。
8.本发明采用以下方案实现:一种基于web架构的权限管理方法,所述方法包括以下步骤:
9.步骤s1、浏览器端通过代码配置角色菜单、页面权限,为不同的角色配置不同的菜单和页面权限;
10.步骤s2、服务器端在数据库中配置角色接口权限信息,以便后续进行角色权限校验;
11.步骤s3、管理员在浏览器端为用户开通系统权限,绑定角色,并同步用户角色信息到服务器端的数据库中;
12.步骤s4、管理员在浏览器端进行动态业务权限管理,并同步信息到服务端数据库中;
13.步骤s5、用户登录后,浏览器端根据用户角色和切换动态业务权限,共同形成路
由,展示菜单;
14.步骤s6、当用户访问角色页面或者动态业务权限页面时,发送请求到服务器端,服务器端首先根据接口在用户业务权限相关表中进行匹配,匹配到记录即通过校验,返回结果;
15.步骤s7、在浏览器端实现访问用户角色不具有的权限页面时,会跳转至错误页面,在错误页面回到首页;
16.步骤s8、在浏览器端实现访问与一级业务权限不匹配的菜单页面时,跳转到未授权页面,在未授权页面提示切换一级业务权限选项。
17.进一步的,所述步骤s1进一步具体为:浏览器端通过代码配置角色菜单、页面权限,为不同的角色配置不同的菜单和页面权限,依据角色信息配置路由,实现为不同角色用户分配不同菜单和页面权限。
18.进一步的,所述步骤s4进一步具体为:管理员在浏览器端开通用户动态业务权限时,选定一级业务权限和二级业务权限,在浏览器端进行动态业务权限管理,包括开通权限、删除权限以及更新权限,并同步信息到服务器端数据库中。
19.进一步的,所述步骤s5进一步包括以下步骤:
20.步骤s51、用户登录后,浏览器端根据用户角色形成路由,展示菜单;
21.步骤s52、浏览器端向服务器端发送请求,获取用户动态业务权限信息;
22.步骤s53、服务器端相应浏览器端请求,从数据库中取出用户动态业务权限列表,返回给浏览器端;
23.步骤s54、判断用户是否绑定动态业务权限,是,则获取权限列表,包括一级业务权限和二级业务权限,浏览器端将权限列表显示在界面上,用户进行选择;否,则获取的权限列表为空,浏览器端给出相应的提示;
24.步骤s55、浏览器端根据用户选择的一级业务权限,形成其二级业务权限列表,根据二级业务权限列表动态修改路由参数;
25.步骤s56、判断一级业务权限列表是否只有一项,是,则不能进行切换,浏览器端根据二级业务权限列表完全路由解析,进行菜单加载,否,则通过切换一级业务权限列表,浏览器端动态展示菜单,不同的一级业务权限列表显示的菜单不同。
26.进一步的,所述步骤s6进一步具体为:判断服务器端根据接口在用户业务权限相关表中是否匹配到记录,是,则通过校验,否,则校验不通过。
27.进一步的,所述步骤s8进一步具体为:在浏览器端实现访问与一级业务权限不匹配的菜单页面时跳转到未授权页面,在未授权页面提示切换一级业务权限选项,并选择回到上一页或首页。
28.本发明还提供了一种基于web架构的权限管理系统,包括配置模块、权限信息模块、绑定角色模块、同步信息模块、展示模块、匹配模块、跳转模块和切换模块;所述配置模块,即包括浏览器端通过代码配置角色菜单、页面权限,为不同的角色配置不同的菜单和页面权限;所述权限信息模块,即服务器端在数据库中配置角色接口权限信息,以便后续进行角色权限校验;所述绑定角色模块,即管理员在浏览器端为用户开通系统权限,绑定角色,并同步用户角色信息到服务器端的数据库中;所述同步信息模块,即管理员在浏览器端进行动态业务权限管理,并同步信息到服务端数据库中;所述展示模块,即用户登录后,浏览
器端根据用户角色和切换动态业务权限,共同形成路由,展示菜单;所述匹配模块,即当用户访问角色页面或者动态业务权限页面时,发送请求到服务器端,服务器端首先根据接口在用户业务权限相关表中进行匹配,匹配到记录即通过校验,返回结果;所述跳转模块,即在浏览器端实现访问用户角色不具有的权限页面时,会跳转至错误页面,在错误页面回到首页;所述切换模块,即在浏览器端实现访问与一级业务权限不匹配的菜单页面时,跳转到未授权页面,在未授权页面提示切换一级业务权限选项。
29.进一步的,所述配置模块进一步具体为:浏览器端通过代码配置角色菜单、页面权限,为不同的角色配置不同的菜单和页面权限,依据角色信息配置路由,实现为不同角色用户分配不同菜单和页面权限。
30.进一步的,所述同步信息模块进一步具体为:管理员在浏览器端开通用户动态业务权限时,选定一级业务权限和二级业务权限,在浏览器端进行动态业务权限管理,包括开通权限、删除权限以及更新权限,并同步信息到服务器端数据库中。
31.进一步的,所述展示模块进一步具体包括:形成路由单元、请求单元、返回单元、判断单元、修改单元和切换单元;所述路由单元,即用户登录后,浏览器端根据用户角色形成路由,展示菜单;所述请求单元,即浏览器端向服务器端发送请求,获取用户动态业务权限信息;所述返回单元,即服务器端相应浏览器端请求,从数据库中取出用户动态业务权限列表,返回给浏览器端;所述判断单元,即判断用户是否绑定动态业务权限,是,则获取权限列表,包括一级业务权限和二级业务权限,浏览器端将权限列表显示在界面上,用户进行选择;否,则获取的权限列表为空,浏览器端给出相应的提示;所述修改单元,即浏览器端根据用户选择的一级业务权限,形成其二级业务权限列表,根据二级业务权限列表动态修改路由参数;所述切换单元,即判断一级业务权限列表是否只有一项,是,则不能进行切换,浏览器端根据二级业务权限列表完全路由解析,进行菜单加载,否,则通过切换一级业务权限列表,浏览器端动态展示菜单,不同的一级业务权限列表显示的菜单不同。
32.进一步的,所述匹配模块进一步具体为:判断服务器端根据接口在用户业务权限相关表中是否匹配到记录,是,则通过校验,否,则校验不通过。
33.进一步的,所述切换模块进一步具体为:在浏览器端实现访问与一级业务权限不匹配的菜单页面时跳转到未授权页面,在未授权页面提示切换一级业务权限选项,并选择回到上一页或首页。
34.本发明的有益效果在于:本发明在基于用户角色进行权限管理的基础上,增加了动态业务权限管理,不再仅仅根据角色来分配权限,同一角色用户获取的权限是一样的,本方案可以动态分配业务权限,不同角色用户可以获取不同的权限,相比前者,本方案灵活性更强,扩展性也更强;当用户被开通了多个动态业务权限时,本方案允许用户动态切换权限,获取不同的业务权限数据。通过切换权限,动态获取菜单,选定的权限不同,形成的菜单、菜单下页面也可能相同,但获取到的数据一定不同;在一定程度上,可以复用浏览器端页面,减少页面冗余;通过采用切换权限,动态加载菜单的方式,也能让界面更简洁、大气。用户不用退出登录即可切换权限,操作简单,方式新颖。
附图说明
35.图1是本发明的方法流程示意图。
36.图2是本发明的系统原理框图。
37.图3为前端动态菜单形成流程图。
38.图4为用户切换权限获取数据流程图。
39.图5为后端服务器进行权限校验流程图。
具体实施方式
40.下面结合附图对本发明做进一步说明。
41.请参阅图1所示,本发明的一种基于web架构的权限管理方法,所述方法包括以下步骤:
42.步骤s1、浏览器端通过代码配置角色菜单、页面权限,为不同的角色配置不同的菜单和页面权限;
43.步骤s2、服务器端在数据库中配置角色接口权限信息,以便后续进行角色权限校验;
44.步骤s3、管理员在浏览器端为用户开通系统权限,绑定角色,并同步用户角色信息到服务器端的数据库中;
45.步骤s4、管理员在浏览器端进行动态业务权限管理,并同步信息到服务端数据库中;
46.步骤s5、用户登录后,浏览器端根据用户角色和切换动态业务权限,共同形成路由,展示菜单;
47.步骤s6、当用户访问角色页面或者动态业务权限页面时,发送请求到服务器端,服务器端首先根据接口在用户业务权限相关表中进行匹配,匹配到记录即通过校验,返回结果;
48.步骤s7、在浏览器端实现访问用户角色不具有的权限页面时,会跳转至错误页面,在错误页面回到首页;
49.步骤s8、在浏览器端实现访问与一级业务权限不匹配的菜单页面时,跳转到未授权页面,在未授权页面提示切换一级业务权限选项。
50.下面通过一具体实施例对本发明作进一步说明:
51.本文提出的权限管理方案,其具体实现包含以下步骤:
52.本发明中前端即浏览器端,后端即服务器端。
53.a1、前端通过代码配置角色菜单、页面权限,为不同角色配置不同的菜单、页面权限;
54.a1

1、依据角色信息配置路由,实现为不同角色用户(如管理员、策划等)分配不同菜单、页面权限。根据角色分配的菜单,不包括后续动态业务权限菜单,与后续动态业务菜单不产生交集;
55.a2、后端在数据库中配置角色接口权限信息,以便后续进行角色权限校验;
56.a3、超级管理员在前端为用户开通系统权限,绑定角色,并同步用户角色信息到后端数据库中;
57.a4、超级管理员在前端进行动态业务权限管理,包括开通权限、删除权限以及更新权限等,并同步信息到后端数据库中;
58.a4

1、超级管理员在前端开通用户动态业务权限时,必须选定一级业务权限和二级业务权限;
59.a5、用户登录之后,前端根据用户角色和切换动态业务权限,共同形成路由,展示菜单。角色菜单不可变,用户可通过切换动态业务权限,动态展示菜单,访问不同的业务内容。前端动态菜单形成过程如图3所示;
60.a5

1、用户登录之后,首先前端根据用户角色形成路由,路由是用来控制前端页面跳转和切换的,vue前端首先需要根据页面配置路由数组,然后根据角色过滤形成最终的路由数组,最后动态挂载路由,展示部分菜单。这部分菜单下页面展示的数据内容是固定的,不会动态变化;
61.a5

2、其次前端向后端发送请求,获取用户动态业务权限信息;
62.a5

3、后端响应前端请求,从数据库中取出用户动态业务权限列表,返回给前端。
63.a5

4、如果用户没有绑定动态业务权限,则获取的权限列表为空,前端给出相应的提示,如“请绑定动态业务权限”,且路由加载完毕,用户只可访问角色权限页面;
64.a5

5、如果用户绑定了动态业务权限,则获取的权限列表不为空,获取的业务权限信息包括一级业务权限和二级业务权限,前端以单选列表的形式将一级业务权限列表展示在界面上,用户可以进行选择,默认选择第一项一级业务权限;
65.a5

6、当选择了一个一级业务权限,前端根据用户以及这个一级业务权限,形成其二级业务权限列表,然后根据这个列表动态修改路由参数,隐藏或者显示部分菜单,展示二级业务权限列表对应的菜单;
66.a5

7、一级业务权限列表如果只有一项,则不能进行切换,前端根据二级业务权限列表完成路由解析,进行菜单加载;
67.请参阅图4所示,a5

8、一级业务权限列表如果有多项,可以通过切换一级业务权限列表,前端动态展示菜单,不同一级业务权限列表,显示的菜单可能不同,用户能访问的业务不同;
68.a5
‑8‑
1、如果步骤a5

6中形成的二级业务权限列表相同,路由参数相同,则前端形成的菜单相同,但用户进入相同的页面,由于选取的一级业务权限不同,获取的业务数据也不同。后端根据请求的一级业务和二级业务权限返回数据,不同一级业务权限,返回的数据不同。
69.a5
‑8‑
2、如果步骤a5

6中形成的二级业务权限列表不相同,前端根据二级业务列表,动态展示不同的菜单。用户进入业务页面,获取到的数据也是不同的。
70.a6、当用户访问角色页面或者动态业务权限页面时,发送请求到后端,后端首先根据接口在用户业务权限相关表中进行匹配,匹配到记录即通过校验,返回结果;如果没有匹配到记录则校验不通过。再根据用户角色在数据库中匹配接口权限,再次校验权限,同样匹配到记录则校验通过,返回结果;如果还是没有匹配到,则本次请求权限校验不通过,具体校验过程如图5所示;
71.a7、在前端实现访问用户角色不具有的权限页面时跳转到404页面,在404页面可选择回到首页;
72.a8、在前端实现访问与一级业务权限不匹配的菜单页面时跳转到401页面,在401页面提示切换一级业务权限选项,并可以选择回到上一页或者首页;
73.具体应用场景:
74.超级管理员给数据分析员a和管理员b开通动态业务权限,用户a和b登录系统,访问业务数据的过程,具体流程如下:
75.1、系统模块菜单包括system1、system2、system3,动态业务模块菜单包括site1、site2、site3。
76.2、在开通动态业务权限之前,角色管理员可以访问所有系统模块(system1、system2、system3),角色数据分析员只能访问系统模块system1。
77.3、超级管理员在浏览器端给管理员b开通一级业务权限project1和project2,project1下开通二级业务权限site1,project2开通二级业务权限site1和site2。超级管理员给数据分析员a开通一级业务权限project1,project1下开通二级业务权限site1、site3。同步动态业务权限信息到后端数据库中。
78.4、管理员b登录系统,前端首先判断b的角色,然后形成路由,展示系统模块菜单system1、system2和system3给用户b。
79.5、前端获取管理员b开通的动态业务权限列表,将一级业务权限列表project1和project2展示在界面上以供管理员b选择,默认选择project1。
80.6、前端根据project1下的二级业务权限site1,形成路由,展示动态业务模块菜单site1给用户b。最终管理员b能访问的模块菜单包括system1、system2、system3和site1。
81.7、管理员b切换一级业务权限为project2,前端根据project2下的二级业务权限site1和site2,形成路由,展示动态业务模块菜单site1和site2给用户。最终管理员b能访问的模块菜单包括system1、system2、system3、site1和site2。
82.8、管理员b在选择不同一级业务权限的时候,不影响系统模块,只会改变动态业务模块。在选择一级业务权限分别为project1和project2的时候,用户系统模块菜单不变,访问同一系统模块菜单下同一页面获取到的数据也是一样的;但在访问相同的动态业务菜单site1时,同一页面获取到的数据不同,后端会根据一级业务权限和二级业务权限返回数据,选择的一级业务权限不同,返回的数据自然不同。
83.9、在切换的时候,如果出现一级业务权限和二级业务权限不匹配的情况,就会跳转到401页面,提示用户切换一级业务权限,并可以选择返回到上一页或者首页。
84.10、数据分析员a登录系统,前端判断a的角色,展示系统模块菜单system1给用户a。
85.11、前端获取数据分析员a开通的动态业务权限列表,将一级业务权限列表project1展示在界面上,并选择project1。
86.12、前端根据project1下的二级业务权限site1、site3,展示动态业务模块菜单site1和site3给用户a。最终数据分析员a能访问的模块菜单包括system1、site1和site3。
87.13、数据分析员a无法切换一级业务权限,因为他只开通了一项一级业务权限project1。
88.14、当数据分析员a越权访问其他系统模块,如system2时,页面跳转到404界面,在404页面可以选择返回到首页。
89.15、当前端发送访问请求到后端时,后端根据接口信息,首先在数据库业务权限相关表中查找记录,如果查找到接口,则检验通过,返回结果;如果没有找到接口,再在角色权
限相关表中查找记录,如果查到接口,则校验通过,返回结果,否则本次请求权限校验不通过。
90.总之,本文提出的权限管理方案不仅仅依靠用户角色进行权限管理,在此基础上,增加了动态业务权限管理。前端采用vue框架实现,通过路由配置角色权限,用户登录之后,仅能看到对应角色分配的页面。后端保存角色接口权限信息,以进行权限校验。
91.动态业务权限管理方面相比前面的权限管理过程更为灵活,首先前端即浏览器端为用户开通业务权限,后端即服务器端保存用户业务权限信息到数据库中,其他操作如删除、更改用户业务权限信息,也需要同步到后端数据库中,以供前端获取权限信息以及后端进行权限校验。用户登录之后,前端发起请求,获取用户具备的业务权限信息,并将一级业务权限以列表的形式展示在界面上,以供用户选择。用户选择某一个一级业务权限时,前端动态展示其二级业务权限所在的菜单。用户通过切换一级业务权限,动态获取二级业务权限菜单列表,从而访问不同业务内容。
92.这两个校验过程共同作用,形成本文介绍的的权限管理方案。首先前端根据用户角色,展示特有的菜单,如管理员才能访问的管理菜单。当用户有开通动态业务权限时,可通过切换一级业务权限,动态展示业务权限模块菜单,访问不同业务内容。当前端发起请求时,后端根据接口在角色权限相关表和用户动态业务权限相关表中进行匹配,匹配到记录即通过校验。
93.请参阅图2所示,本发明还提供了一种基于web架构的权限管理系统,包括配置模块、权限信息模块、绑定角色模块、同步信息模块、展示模块、匹配模块、跳转模块和切换模块;所述配置模块,即包括浏览器端通过代码配置角色菜单、页面权限,为不同的角色配置不同的菜单和页面权限;所述权限信息模块,即服务器端在数据库中配置角色接口权限信息,以便后续进行角色权限校验;所述绑定角色模块,即管理员在浏览器端为用户开通系统权限,绑定角色,并同步用户角色信息到服务器端的数据库中;所述同步信息模块,即管理员在浏览器端进行动态业务权限管理,并同步信息到服务端数据库中;所述展示模块,即用户登录后,浏览器端根据用户角色和切换动态业务权限,共同形成路由,展示菜单;所述匹配模块,即当用户访问角色页面或者动态业务权限页面时,发送请求到服务器端,服务器端首先根据接口在用户业务权限相关表中进行匹配,匹配到记录即通过校验,返回结果;所述跳转模块,即在浏览器端实现访问用户角色不具有的权限页面时,会跳转至错误页面,在错误页面回到首页;所述切换模块,即在浏览器端实现访问与一级业务权限不匹配的菜单页面时,跳转到未授权页面,在未授权页面提示切换一级业务权限选项。
94.所述配置模块进一步具体为:浏览器端通过代码配置角色菜单、页面权限,为不同的角色配置不同的菜单和页面权限,依据角色信息配置路由,实现为不同角色用户分配不同菜单和页面权限。
95.所述同步信息模块进一步具体为:管理员在浏览器端开通用户动态业务权限时,选定一级业务权限和二级业务权限,在浏览器端进行动态业务权限管理,包括开通权限、删除权限以及更新权限,并同步信息到服务器端数据库中。
96.所述展示模块进一步具体包括:形成路由单元、请求单元、返回单元、判断单元、修改单元和切换单元;所述路由单元,即用户登录后,浏览器端根据用户角色形成路由,展示菜单;所述请求单元,即浏览器端向服务器端发送请求,获取用户动态业务权限信息;所述
返回单元,即服务器端相应浏览器端请求,从数据库中取出用户动态业务权限列表,返回给浏览器端;所述判断单元,即判断用户是否绑定动态业务权限,是,则获取权限列表,包括一级业务权限和二级业务权限,浏览器端将权限列表显示在界面上,用户进行选择;否,则获取的权限列表为空,浏览器端给出相应的提示;所述修改单元,即浏览器端根据用户选择的一级业务权限,形成其二级业务权限列表,根据二级业务权限列表动态修改路由参数;所述切换单元,即判断一级业务权限列表是否只有一项,是,则不能进行切换,浏览器端根据二级业务权限列表完全路由解析,进行菜单加载,否,则通过切换一级业务权限列表,浏览器端动态展示菜单,不同的一级业务权限列表显示的菜单不同。
97.所述匹配模块进一步具体为:判断服务器端根据接口在用户业务权限相关表中是否匹配到记录,是,则通过校验,否,则校验不通过。
98.所述切换模块进一步具体为:在浏览器端实现访问与一级业务权限不匹配的菜单页面时跳转到未授权页面,在未授权页面提示切换一级业务权限选项,并选择回到上一页或首页。
99.以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1