7、前后端分离中的权限管理思路

在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器来实现功能),如果用户不具备某一个角色或者某一个权限,则无法访问某一个页面。

但是在前后端分离中,页面的跳转通通交给前端去做,后端只提供数据,这种时候,权限管理不能再按照之前的思路来。

首先要明确一点,前端是展示给用户看的,所有的菜单显示或者隐藏目的不是为了实现权限管理,而是为了给用户一个良好的体验,不能依赖前端隐藏控件来实现权限管理,即数据安全不能依靠前端,就像普通的表单提交一样,前端做数据校验是为了提高效率,提高用户体验,后端才是真正的确保数据完整性。(例如前端注册时传来一个邮箱地址,前端已经校验通过,但是后端还需要再校验,因为只有后端的校验才是真正的确保数据是合法的,前端只是为了提高用户体验,给用户快速的响应一下,免得用户把数据传到后端再返回才知道错误)。

所以真正的数据安全是在后端实现的,后端在设计的过程中,就要确保每一个接口都是在满足某种权限的基础上才能访问。也就是说,不怕将后端数据接口暴露出来,即使暴露出来,只要你没有相应的角色,也是访问不了的。

前端为了良好的用户体验,需要将用户不能访问的接口或者菜单隐藏起来。

有人说,如果用户直接在地址栏输入某一个页面的路径,怎么办?此时如果没有过任何额外的处理的话,用户确实可以通过直接输入某一个路径进入到系统的某一个页面中,但是,不用担心数据泄露问题。因为没有相关的角色,就无法访问相关的接口,但是如果用户非这样操作,进入到一个空白的页面,用户体验不好,此时我们可以使用Vue中的路由导航守卫,来监听页面跳转,如果用户想要去一个未获授权的页面,则直接在前置路由导航守卫将之拦截下来,重定向登录页,或者直接就停留在当前页,不让用户跳转。

总而言之一句话,前端的所有操作,都是为了提高用户体验,不是为了数据安全,真正的效验要在后端来做。

后端中的权限管理,每个角色统一一种路径。
在这里插入图片描述
在路由表中的index.js文件中添加权限如下:
在这里插入图片描述
在Home主页读取数据出来显示的时候,当前登陆的用户如果不具备路由表index.js中所要求的角色,就不显示指定菜单
在这里插入图片描述

  • 15
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值