2021-05-25

前言

 在前端后台项目中,都会遇到权限的问题, 前端的权限大概都是分为,菜单控制,界面控制,按钮控制,请求和响应和控制, 真正的权限都是依靠后端来处理的,前端对一些权限的处理可以有效的减少对服务器的请求。

菜单控制

 请求过程中,会得到权限的数据,需要想后端返回数据的支持,前端根据权,展示对应的菜单。


 在登录的时候,拿取到后端权限的数据,VUEX中, 通过this.$store.commit      ()存入全局中, 一开始页面那侧边二级菜单是空的,通过引入这个方法到该页面中,在计算属性 中把这个属性给展开,在create中,把这个方法赋给空的二级菜单中,这样菜单就会根据后台传过来的权限动态添加菜单。

在这里插入图片描述

在这里插入图片描述

把这数据全局中的数据放到sess中可以防止刷新后登录后权限丢失问题

在这里插入图片描述

 退出时清空sess和VUEX数据,通过sess.clear清除数据,因为全局数据放在sess中的,通过自动刷新页面同时清空VUEX的数据。

在这里插入图片描述

界面控制

1.如果没有登录,手动跳转地址,重定向到登录
   在登录的时候拿到后端的toke令牌数据,可以存储到sess中,在全局router在中,利用全局路由首位中的from 来判断如果是从登录页面来的主页的话直接放行(next),不是的话判断toke如果有toke的值,如果没有跳转到登录页面,如果没有的话则跳转到登录页面。

在这里插入图片描述

2.已经登录,输入到没有权限的地址,跳到404
  主要的是通过动态路由来添加的,在登录的时候获取到后端传过来该用户权限下的路由,把一些需要权限的一些路由展现出来, 先把路由提取出去到如下图

在这里插入图片描述
在登录页面导入 store {{}} 的这个模块,并且调用这个路由下的在这个函数方法。
调用这个方法前,因为后端拿去回来是一个字符传的路由需要和前端约定好的一直,所以先重新赋值

在这里插入图片描述

 然后按照返回来的值,拿去到的值,遍历权限下的菜单,后增到childen 这样,如果权限里面没有这个页面点击的时候会自动跳转到404

在这里插入图片描述

因为在登录页面拿去的数据,刷新后(已经过了登录页面这个逻辑),权限下的后增的的就又为空了,所以提前在APP.vue文件中created调用以下这个方法,可以防止这个发生

按钮控制

在菜单中,展示对应的按钮,如增删改,或者把按钮给禁用掉
在不需要展示得按钮上添加自定义指令,如下图

在这里插入图片描述

		自定义指令之后在新创建的自定义之类文件中,运用,自定义指令中第二个参数为一个对象,来获取到指令下的一个action属性,在路由中增加元信息来判断,这个用户是否有个功能,如果没有就是可以隐藏,或者禁掉。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

请求响应和控制

用户通过非常规的操作,比如通过控制面板修改成启动状态,此时发的请求应该被前端拦截。

这个可以请求的过程中,利用响应请求来判断用户是否有这个权限,如果没有这个权限,前端直接拦截下来,不用请求到后端。
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
最新发布
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值