dtcms 源码 CoreJava IntelliJ IDEA教程 webview interface datepicker webforms Egret Engine vue异步加载组件 sql视频教程 jquery移除子元素 bootstrap日历插件 ps字体旋转角度 matlab 图像识别 pip环境变量 字符串中包含某个字符串 android入门实例 json转object oracle增加主键 matlab图像滤波 mysql卸载工具 mysql连接 java正则表达式 java匿名对象 java中float java结束线程 java日期格式化 opengl编程指南 mathcad下载 骁龙435 unix系统下载 方正兰亭字体下载 电子书制作软件 通讯录管理系统 位置不可用 不屑表情包 苹果手机添加邮箱 免费ftp空间 android开发案例 黑域怎么用
当前位置: 首页 > 学习教程  > 编程语言

Spring Boot + Vue 前后端分离开发,权限管理的一点思路

2020/9/19 15:35:15 文章标签:

Spring Boot + Vue 前后端分离开发,权限管理的一点思路

本文转载自松哥的Spring Boot + Vue 前后端分离开发,权限管理的一点思路

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

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

首先要明确一点,前端是展示给用户看的,所有的菜单显示或者隐藏目的不是为了实现权限管理,而是为了给用户一个良好的体验,不能依靠前端隐藏控件来实现权限管理,即数据安全不能依靠前端。

这点就像普通的表单提交一样,前端做数据校验是为了提高效率,提高用户体验,后端才是真正的确保数据完整性。

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

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

有人说,如果用户直接在地址拦输入某一个页面的路径,怎么办?此时,如果没有做任何额外的处理的话,用户确实可以通过直接输入某一个路径进入到系统中的某一个页面中,但是,不用担心数据泄露问题,因为没有相关的角色,就无法访问相关的接口。

但是,如果用户非这样操作,进入到一个空白的页面,用户体验不好,此时,我们可以使用 Vue 中的前置路由导航守卫,来监听页面跳转,如果用户想要去一个未获授权的页面,则直接在前置路由导航守卫中将之拦截下来,重定向到登录页,或者直接就停留在当前页,不让用户跳转,也可以顺手再给用户一点点未获授权的提示信息。

总而言之一句话,前端的所有操作,都是为了提高用户体验,不是为了数据安全,真正的权限校验要在后端来做,后端如果是 SSM 架构,建议使用 Shiro ,如果是 Spring Boot + 微服务,建议使用 Spring Security 。

关注公众号【江南一点雨】,专注于 Spring Boot+微服务,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货!
javaboy


本文链接:
http://www.dtmao.cc/news_show_200278.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?