配置响应拦截器,全局前置导航守卫

news2025/1/13 10:07:26

1:配置响应拦截器

响应拦截器,统一处理接口的错误

问题:每次请求,都会有可能会错误,就都需要错误提示

说明:响应拦截器是咱们拿到数据的 第一个 数据流转站,可以在里面统一处理错误。

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数
  // 处理不同的响应
  const res = response.data
  // 非成功响应提示后端响应的错误信息,抛出错误不继续执行后续代码
  Toast.clear()
  if (res.status === 100) {
    Toast(res.message)
  }
  return res
}, function (error) {
  Toast.clear()
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  if (error.response.status === 401) {
    Toast('没有权限,请先登录')
    router.push('/login')
  } else {
    Toast(error.response.data.errorCode.msg)
  }
  return Promise.reject(error)
})

在封装的请求request.js文件中添加响应拦截器对不同的响应状态给予不同的处理规则

2:全局前置导航守卫

页面全局前置守卫,进行页面访问拦截处理

路由导航守卫-全局前置守卫

1:所有的路由一旦被匹配到,都会先经过全局前置守卫

2:只有全局前置守卫放行,才会真正解析渲染组件,才能看到页面内容

访问权限页面时,拦截或放行的关键点?-> 用户是否有登录权证token

路由守卫就是在跳转路由的时候经过配置的守卫,在守卫函数里面来判断是否运行跳转到下一个路由,如果是可以随意的访问的页面,那就可以把这些页面的路径放到一个数组里面判断路由跳转时的路径是不是在这个数组内如果存在直接放行,这个数组也被称之为白名单,如果不存在判断是否具备token,如果带token放行不带token跳转到登录页面。

代码实现:

在路由文件中配置路由守卫和判断是否放行路由逻辑

// 商城系统:因为大部分页面用户不登陆也可以进行访问所以这边配置的是需要校验的路由
// 后台关系系统中:因为大部分页面用户不登陆是不可以访问的所以数组配置的应该是不需要校验的路径
const authUrls = ['/pay', '/myorder']
// 配置前置守卫
router.beforeEach((to, from, next) => {
  // 判断如果是不需要权限校验的路径直接放行,不继续执行
  if (!authUrls.includes(to.path)) {
    next()
    return false
  }
  const token = store.getters.token
  // 如果是需要校验的路由 判断是否携带token
  if (token) {
    next()
  } else {
    next('/login')
  }
})

 需要登录的路由,从vuex中获取是否有登录信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1810892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Lua搭建网站后台教程

本文讲解如何使用二进制发布包和FastWeb网站管理工具搭建站点 FastWeb网站管理工具 使用该工具可快速在Windows平台部署。支持官方或三方模块的自动安装、日志调试、版本更新等。 1、下载最新版本压缩包 2、解压到任意目录(建议英文) 3、运行 ①点击 [设置]->[安装] 部…

微信小程序使用 “云函数“ 获取 “openid“

文章目录 1.前期准备2.具体操作步骤 1.前期准备 必须使用云开发已经配置好云开发 2.具体操作步骤 1.进入小程序开发工具→在云函数目录上右键→选中新建云函数 创建结束,自动上传(必须确认已经上传才生效) 2.进入对应页面的js文件&#…

【qt】坐标系变换

坐标系变换 一.物理坐标二.逻辑坐标1.平移2.旋转3.扭转4.缩放 三.案例结合画一个五角星四.总结 一.物理坐标 物理坐标系,就是我们上节课说的,坐标的原点在窗口的左上角。这节课我们可以通过改变原点的位置来达到我们想姚的逻辑坐标。 二.逻辑坐标 1.平…

Java程序设计————从控制台输入

向控制台输入信息可以借助Scanner扫描器类来实现 语法: Scanner input new Scanner(System.in); 提示 (1)在使用Scanner类型之前,需要首先指明Scanner类所在的位置,既通过代码 import java.util.Scanner; &…

利用 HTML5 Canvas 实现在线签字功能

目录 前言 一、HTML5 Canvas 简介 二、签字功能的实现 效果演示 完整代码 前言 在现代互联网应用中,有时我们需要让用户在网页上进行签字操作,比如确认文件、填写电子表格或者签署合同。利用 HTML5 的 canvas 画布,我们可以轻松地实现这一…

一、【源码】实现一个简单的Bean容器

实现一个简单的Bean容器 实现流程: 1.创建一个BeanFactory容器,用于管理bean 2.定义一个BeanDefinition,指定UserService类 3.将BeanDefinition注册到BeanFactory中 4.从工厂中获取bean实例,执行方法 注意: BeanDefin…

orbslam2代码解读(3):localmapping局部建图线程

书接上回,介绍完了跟踪线程,已经得到了当前帧相机的位姿,并且当判断需要产生关键帧的时候,tracking线程把新创建的关键帧插入到mpLocalMapper这个线程的mlNewKeyFrames容器中。所以这时候局部线程就根据这个新的关键帧来进行局部建…

三星系统因何而成?或许是因为吞噬了第四颗恒星

相比于其他的类似星体,这个特殊的三星系统拥有更大更紧密的星体。 三星 天文学家发现了前所未见的三星系统。相比于其他典型的三星系统,这一三星系统拥有更大的体积,并且排列也更加紧密,这也使得这一系统更加特别。科学家推测&am…

8、项目目录结构创建

项目目录结构创建 8.1 三层架构 在spring-boot 的web项目中大都是按照这个思路来的: controller层 —> service层(serviceImpl实现service接口)—> mapper层—> mapper.xml文件 创建目录 commen:存放公共代码的 config:存放配置代码的 controller:后端控制器,…

[office] excel表格中双击鼠标左键有什么快捷作用- #经验分享#媒体

excel表格中双击鼠标左键有什么快捷作用? excel表格中双击鼠标左键有什么快捷作用?不要小看鼠标左键双击的作用,在excel中双击鼠标左键可以实现六个功能,提高工作效率,到底是那六个功能呢?请看下文详细介绍 在表格中…

MAVEN仓库和Nexus私服

仓库 仓库的类型 本地(local) Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建 中央(central) Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大…

爱普生32.768kHz晶振FC-135:小型化为高端产品带来的卓越优势

在电子设备快速发展的时代,晶振作为时钟源的核心元件,其性能和尺寸对产品的整体表现至关重要。爱普生32.768kHz晶振FC-135凭借其小型化设计和出色的性能,为高端产品带来了显著的优势。本文将介绍32.768kHz晶振FC-135的特点及其在高端产品中的…

Tiny Time Mixers (TTM)轻量级时间序列基础模型:无需注意力机制,并且在零样本预测方面表现出色

大语言模型的发展让研究人员专注于建立尽可能大的模型。但是其实较小的模型在某些任务中表现会优于较大的模型时,例如:Llama 3-8B在MMLU任务上的表现优于较大的Llama 2-70B ! 这就说明大模型并不是万能的,在一些特定任务中,小模型…

RK3568-修改fiq-debugger调试串口

瑞芯微SDK默认将uart2_m0作为调试串口,以下方法将调试串口修改为uart5_m1。修改bootloader 修改/OK3568-linux-source/rkbin/tools/ddrbin_param.txt文件,5表示串口5。1表示复用m1。执行./ddrbin_tool ddrbin_param.txt ../bin/rk35/rk3568_ddr_1560MHz_v1.11.bin命令修改ub…

Windows环境下搭建RocketMq集群(双主双从)

一、官网下载Rocket安装包 下载地址:https://rocketmq.apache.org/dowloading/releases/下载 | RocketMQhttps://rocketmq.apache.org/dowloading/releases/ 博主这里下载的是4.9.8版本的,大家根据自己的需要下载对应的版本即可。 二、环境变量配置 环…

再度牵手,制造升级 | 毅达科技IMS OS+通用产品集+行业套件项目正式启动!

在数字化与智能制造的浪潮中,制造业企业纷纷加快转型步伐,力求通过技术创新实现生产效率与质量的双重提升。近日,广东毅达医疗科技股份有限公司(以下简称“毅达科技”)再次携手盘古信息,正式启动了IMS 数字…

背包问题—动态规划

01背包问题&#xff1a;没有物品&#xff08;元素&#xff09;只能选择1次 【模板】01背包_牛客题霸_牛客网 (nowcoder.com) #include <array> #include <cstring> #include <iostream> #include<vector> using namespace std; int n,V; int dp[1001…

全球微型光谱仪市场规模逐渐扩大 智能手机为最大应用领域

全球微型光谱仪市场规模逐渐扩大 智能手机为最大应用领域 光谱仪又称为分光仪&#xff0c;是用来测量光谱成分的一种仪器&#xff0c;可以检测特定波长的电磁辐射形成的光谱&#xff0c;从而获取有关物质的结构和动力学等信息。微型光谱仪是光谱仪的细分产品之一&#xff0c;具…

原腾讯云副总裁张纾翔加入矩阵起源,共筑人工智能新篇章

近日&#xff0c;原腾讯云副总裁张纾翔先生正式加入矩阵起源&#xff0c;担任合伙人兼高级副总裁&#xff0c;全面负责矩阵起源商业化工作。 矩阵起源成立于2021年。公司创始团队来自腾讯云、Snowflake等国内外一流的互联网企业、软件公司、数字化企业和开源社区&#xff0c;核…

使用 Transformer 完成 IMDB 情感分类任务

前言 本文使用简单的 Transformer Block 实现对影评文本数据 IMDB 的情感分类任务。 数据 这里定义了两个关键的超参数&#xff1a; vocab_size&#xff1a;表示词汇表的大小&#xff0c;即允许在文本数据中使用的不同的单词数量。maxlen&#xff1a;表示文本序列的最大长度&…