vue权限管理——请求和响应权限控制

这篇具有很好参考价值的文章主要介绍了vue权限管理——请求和响应权限控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.请求头中设置token

每次请求请求头都携带token,没有token或者token失效后端会返回错误

axios.interceptors.request.use(configs => {
    let token = sessionStorage.getItem("token");
    if (token) {
        configs.headers.authorization = token;
    }
}

2.拒绝非权限请求

防止一些在浏览器上强制将按钮改成可用(如将disabled改为true就可用),然后发起请求后发送后端

const actionMapping = {
    'get': 'view',
    'post': 'add',
    'put': 'edit',
    'delete': 'delete',
}
const whiteList = ['/login','/user/login','/user/me', '/', '/404']

// 对请求头进行处理(token)
axios.interceptors.request.use(configs => {
    let token = sessionStorage.getItem("token");
    if (token) {
        configs.headers.authorization = token;
    }

    // 拒绝非权限请求
    if (!whiteList.includes(configs.url)) {
        let metaRights = router.currentRoute.value.meta.rights;
        let action = actionMapping[configs.method];

        if (!metaRights.includes(action)) {
            ElMessage.error("没有操作权限");
            return Promise.reject(new Error('没有操作权限'))
        }
    }

    return configs;
});

3.响应拦截

响应控制:请求返回401,token无效或者后期,则需要跳转到登录界面文章来源地址https://www.toymoban.com/news/detail-674521.html

// 处理返回数据
axios.interceptors.response.use(response => {
    return response;
}, error => {
    let { status, data } = error.response;
    let { message, errorDetail } = error.response.data;
....
   if (status === 401 || status === 402 || status === 403) {
        // 没有权限,需要重新登录
        ElMessage.error("token失效或无权限,正跳转登录页面......");
        sessionStorage.clear();
        return router.push("/login");
    }
....
}

到了这里,关于vue权限管理——请求和响应权限控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Axios基本使用,为学习后续的Vue服务【发送请求+并发请求+前端拦截器】

    目录 1、项目中引入Axios 2、使用Axios发送请求 2.1、例:发送GET请求 2.2、例:发送POST请求 3、axios并发请求 4、拦截器 注:个人学习笔记,因自己学过后端,所以有关后端的代码,我在这里就不展示了~ 不了解后端的宝子,也不会耽误学习,因为公司里会有写好的接口文档,直

    2024年02月02日
    浏览(40)
  • Springboot+vue跨域+登录拦截问题,前端获取不到session,每次请求sessionid变化

    折磨了整整两天,终于把这个问题搞定了. 一开始后端开发完后,用apifox所有接口测试都是可以的,但当前端跑起来后发现接收不到后端的数据. 网上查了很多方法,首先试了查到的前端代理方法 没用,代理配置了但api不会替换成设置好的代理,还是以字符串形式到相对路径上. 于是找

    2024年01月19日
    浏览(29)
  • 后端flask,前端vue,实现post请求chatgpt流式响应

    vue2写法 vue3 setup写法

    2024年01月21日
    浏览(33)
  • vue权限管理——按钮控制

    根据right中的数据对应增删改查按钮  initDynamicRoutes给用户对应的router中动态添加meta元数据后,permission.js中通过router.currentRoute就可以获取 directives/permission.js 获取路由元数据中的rights权限和按钮上的action记录权限做比较:如果包含则有该权限,否则无权限,进行删除元素或者

    2024年02月11日
    浏览(38)
  • 前端Vue:权限管理,给角色分配权限

    👉前端-Vue权限控制,菜单权限,按钮权限_一人创客的博客-CSDN博客 目录 介绍: 前端权限的概念: 前端权限的意义: Vue权限管理的代码实现: 菜单 刷新界⾯菜单消失 标识⽤户名, ⽅便查看当前⽤户 退出登陆:  界面: 1.判断当前是否登陆 2.控制是否可以访问角色界面 (

    2024年02月11日
    浏览(25)
  • Vue + Element UI 前端篇(十三):页面权限控制

    既然是后台权限管理系统,当然少不了权限控制啦,至于权限控制,前端方面当然就是对页面资源的访问和操作控制啦。 前端资源权限主要又分为两个部分,即导航菜单的查看权限和页面增删改操作按钮的操作权限。 我们的设计把页面导航菜单和页面操作按钮统一存储在菜

    2024年01月25日
    浏览(39)
  • vue3用户权限管理(导航栏权限控制)2

    上一节我们说到,通过后端的用户权限来进行路由的动态添加,实现权限控制,这一节我们通过递归导航栏组件,实现后台权限控制导航栏,接上一节所说我们在vuex中存储了一个路由数组[\\\"/\\\",\\\"*\\\"]进行权限控制,这一节还是要使用这个路由数组进行导航栏的控制,开始吧。  

    2024年02月03日
    浏览(47)
  • 补充 vue3用户管理权限(路由控制)

    之前有人问我 ,如果是二级路由如何添加,这里我做一个补充吧。直接拿方法去用就行。也不做解释了。稍微看下就能看懂了 假设,后端返回给我们一个数据 [“/defa”,\\\"/defa/defa1\\\"] 这样的一个路由表,我们就需要通过这个路由表去筛选匹配我们的动态路由,然后在进行添加。

    2024年01月21日
    浏览(31)
  • 【VUE学习】权限管理系统前端vue实现3-登陆页面

             path: \\\'/login\\\' :指定了路由的路径为 \\\"/login\\\",表示该路由匹配到的 URL 是 \\\"/login\\\"。 name: \\\'login\\\' :指定了路由的名称为 \\\"login\\\",可以在代码中通过名称来进行路由导航。 component: () = import(\\\'../views/Login.vue\\\') :指定了该路由对应的组件为一个异步加载的组件。 使用箭头函

    2024年02月13日
    浏览(31)
  • 掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!

    (1)浏览器发送一个请求会先到Tomcat的web服务器。 (2)Tomcat服务器接收到请求以后,会去判断请求的是静态资源还是动态资源。 (3)如果是静态资源,会直接到Tomcat的项目部署目录下去直接访问。 (4)如果是动态资源,就需要交给项目的后台代码进行处理。 (5)在找到具体的方法之前

    2024年01月22日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包