401状态码的含义和处理-程序员宅基地

技术标签: 401状态码  http状态码  vue  前端  JS  vue.js  javascript  

401状态码的处理

401状态码的含义

axios向服务器端发送请求时,有两种情况会出现401状态码(unauthorized未授权):

  1. 服务端要求传递token信息,而实际发送请求时没有传递。
  2. 发送请求时有传递token到达服务器端,但由于时间比较久,这个token在服务器中已经过期了(服务器存储token有效期时间为2个小时)。
  • 总之,服务器端有些api接口要求传递token,token失效或没有传递,就会报401错误。

401状态码的处理

  1. axios请求拦截器中做token传递操作。
  2. 可以这样设置,在axios响应拦截器中判断请求状态如果是401,就强制用户重新登录系统。

第2种情况处理实现

在axios的响应拦截器中,判断错误码等于401就强制登录(utils/ax.js)

// 引入路由
import router from '@/router'

// 配置响应拦截器
axios.interceptors.response.use(function (response) {
    
  // 正常响应处理
  return response
}, function (error) {
    
  // 非正常响应处理(包括401)
  // console.dir(error) // 对象: config request response isAxiosError toJSON
  if (error.response.status === 401) {
    
    // token失效(token在服务器端已经失效了,2个小时时效)
    // 强制用户重新登录系统,以刷新服务器端的token时效
    router.push('/login')
    // 不要给做错误提示了
    return new Promise(function () {
    }) // 空的Promise对象,没有机会执行catch,进而不做错误提示了
  }
  // return new Promise((resolve,reject)=>{
    
  // reject('获得文章失败!')
  // })
  return Promise.reject(error)
})

注意

  1. 路由对象.push(xxx) 可以实现编程式导航。

  2. 路由对象:在组件中是 this.$router ,在main.js/ax.js文件中就是router对象(需要import导入)。

  • 模拟服务器端token失效步骤:
  1. 删除客户端sessionStorage数据。
  2. 暂时屏蔽守卫代码(开发完毕再打开)。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jyn15159/article/details/108879988

智能推荐

学习C/C++编程有什么条件,没基础能学C++开发吗?来了解一下吧!-程序员宅基地

文章浏览阅读611次。  最近指导初学编程的小伙伴学习C/C++编程,但是在学习的过程中有小伙伴询问了不少的问题,下面小编就和大家分享一下学习C/C++编程有什么条件以及没有基础能否学习C++软件开发。   相信大家在学习编程之时,对于那些不愿意学的是非常理解,但是这些不愿意学习或者是中途而放弃,所给出的理由不能赞同罢了,像是因为英语不好啊,数学不好啊,没有...

XAMPP和Bugfree详细教程-程序员宅基地

文章浏览阅读214次。一、XAMPP安装配置  xampp是一款跨平台的集成 apache + mysql + php环境,是的配置AMP服务器变得简单轻松,支持windows,solaris,  下载地址:http://sourceforge.net/projects/xampp/files/  启动apache和mysql服务,如果apache不能成功启动..._xampp及bugfree

程序员面试金典题解 链式A+B_给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。-程序员宅基地

文章浏览阅读314次。题目描述有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。 测试样例: {1,2,3},{3,2,1} 返回:{4,4,4}import java.util.*;/*public class L_给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。

UGUI零碎_unity 将一张image碎片化-程序员宅基地

文章浏览阅读79次。104-创建滚动列表创建一个空白Image作为父节点与文本框宽度一致(文本要完全展开),再给Image添加Scroll Rect滚动矫正组件,将Text拖入组件中,直选用Vertical轴即可,再添加Mask组件遮住多余的部分,也可以在Mask里取消Image的颜色,新建一个Scrollbar滚动条,将滚动条拖入Scroll Rect滚动矫正组件中105加载场景时要把所有场景放入Buildi..._unity 将一张image碎片化

MyBatis-Plus分页插件的配置与使用_mybatisplus 分页插件配置-程序员宅基地

文章浏览阅读2.2k次。MyBatis-Plus分页插件的配置与使用_mybatisplus 分页插件配置

spark 实现sqoop类似功能的数据同步工具_sqoop spark-程序员宅基地

文章浏览阅读2k次。一年多前写的用spark 实现sqoop类似功能的数据同步工具,拿出来分享一下优点:1.用配置代替sqoop命令,维护简单,添加新增同步表或下线同步表,只需在sql中增加或删除即可2.实测性能比sqoop好,当然前提是内存资源足够实现功能:1.通过配置需要同步的表清单元数据,实现多表并行从mysql同步到hive2.通过配置表同步类型,实现全量同步,增量同步,是否重跑功能2.通过配置表的并行分区字段,分区度(并行度),实现表数据分区并行同步3.同步过程中,动态检测源表表结构字段变化,并做相应_sqoop spark

随便推点

js多维数组降维处理_lodash 对象数组降维-程序员宅基地

文章浏览阅读705次。在和后端兄弟对接接口的时候,经常遇到一个让人看着脑壳痛的数据形式:比如下图你只是想要一个数组而已,但是后端返回的数据,让你脑壳疼,又得自己改造了数据了。像这样的[1, [2, [3, [4]], 5]];多维数组怎么简单处理成一维数组呢?当然你可以一次次遍历数组处理,这里介绍一个好用的插件 lodash.js库。里面有各种数组和对象的处理方法,自己自行查看api,这里主要讲讲数组的降维处理注意先在页面引入lodash.js//浏览器环境:<script src="lodash_lodash 对象数组降维

Redis缓存热key问题常用解决方案_redis 热key_最爱彩虹糖的博客-程序员宅基地

文章浏览阅读8.1k次,点赞8次,收藏43次。前言 做一些C端业务,不可避免的要引入一级缓存来代替数据库的压力并且减少业务响应时间,其实每次引入一个中间件来解决问题的同时,必然会带来很多新的问题需要注意,比如上篇文章《数据库与缓存一致性实战》中提到的如何做缓存的一致性。那么其实还会有一些其他问题比如使用Redis作为一级缓存时可能带来的热key、大key等问题,本文我们就热key(hot key)问题来讨论,如何合理的解决热key问题。正文背景 &nbs_redis 热key

OpenSSL源码在Win下编译报错-LNK2005/fatal error LNK1169_无法打开 sha1-586.obj-程序员宅基地

文章浏览阅读895次。错误详情:IF EXIST .manifest DEL /F /Q .manifest IF EXIST libcrypto-1_1.dll DEL /F /Q libcrypto-1_1.dll link /nologo /debug /dll /nologo /debug /implib:libcrypto.lib /out:libcrypto-1_1.dll /def:libcrypto.def @C:\Users\admin\AppData\Local\Tem..._无法打开 sha1-586.obj

经济专业需要学c语言吗,学c语言要什么基础?-程序员宅基地

文章浏览阅读237次。.C语言是应用非常广泛的计算机编程语言,一直被想从事IT行业的伙伴们认为是必须学习的课程.那么,学习C语言需要哪些基础?接下来,编辑将简要介绍它..学习C语言需要什么基础?零基础学习c语言时,首先要有非常强的逻辑思维能力,有一定的数学运算能力,经过一段时间的认真学习和努力练习,才能掌握c语言..没有基础的同学,可以去汇丰教育学习c语言编程,汇丰教育的c语言编程课程从c开始,包括c先生的程序设计、W...

微软Windows 10 MSDN官方ISO镜像正式版下载_windows10iso镜像下载-程序员宅基地

文章浏览阅读9.8k次,点赞6次,收藏12次。Windows 10简体中文多版本原版纯净官方镜像下载:Windows10 x64消费者多版本合集,Version 1809(中文简体)文件名:cn_windows_10_consumer_edition_version_1809_updated_sept_2018_x64_dvd_051b7719.isoSHA1:c8deade18822435d8d47011609c124496e94..._windows10iso镜像下载

linux 并发控制_linux并发-程序员宅基地

文章浏览阅读230次。一、什么是并发,为何要使用并发机制并发(concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(race conditions) 并发即是 多件事情同时在执行 只有使这些设备都并发的执行才能满足性能要求。 例: 如果系统上挂10个设备,每个设备都请求,如果是_linux并发