本发明涉及计算机应用技术领域,更具体的说是涉及一种基于vue.js和django的权限控制方法及系统。
背景技术:
前后端分离的架构技术已经非常成熟,前端js技术发展很快,出现了很多流行的mvvm框架,比如angular、react、vue,而python作为后端语言,其开源社区有大量活跃用户,流行的web框架已经让人眼花缭乱,比如django、flask、tornado、bottle等等。当前,前端采用vue框架,后端采用django框架进行了自动化测试平台的开发。
目前,前后端分离的权限控制,通常有两种方案,一是通过制定好的角色来进行前端页面权限的控制,无法实现前端权限与后端接口权限的一一对应,使得扩展角色非常困难,不方便灵活地进行权限控制;二是通过后端返回前端的路由表,前端拿到后端返回的路由表数据,还需要遍历路由表生成前端正常使用的路由,重复进行生成前端路由的计算。
技术实现要素:
针对以上问题,本发明的目的在于提供一种基于vue.js和django的权限控制方法及系统,能够达到前端后端权限严格控制的效果。
本发明为实现上述目的,通过以下技术方案实现:一种基于vue.js和django的权限控制方法,包括如下步骤:
s1:利用django生成web后端接口权限表,并进行接口权限与前端权限的匹配;
s2:创建角色并选择权限项;
s3:创建当前角色下的用户;
s4:利用django获取当前用户的所有前端权限代号;
s5:利用vue.js,根据匹配的前端权限代号,控制前端菜单权限;
s6:利用vue.js,根据匹配的前端权限代号,控制前端指令权限;
s7:利用django,根据后端接口权限表,控制后端接口权限。
进一步,所述步骤s1中,利用django生成web后端接口权限表具体包括:
在工程中添加django的功能模块auth、contenttypes和rest_framework;
使用migrate命令生成数据库表,所述数据库表包括接口权限表auth_permission表、用于记录app_label和model的django_content_type表。
进一步,所述步骤s1中,进行接口权限