vue添加响应response拦截器,响应登陆超时处理

当Vue前端发起请求,携带者后端之前传递的tokenId,这个tokenId是有有效期的,当后端判定这个tokenId失效时,发出失效状态,前端的axios的拦截器拦截到的话,就提示前端重新登陆,另外清除前端已经登陆的客户信息。

在src目录下添加一个目录——service,里面新建文件——index.js,在这当中填入代码:

//引入vuex,后面如果tokenId过期,清除vuex中保存的登陆信息
import vuex from '../store/index';


service.interceptors.response.use(response => {
    if (response.status !== 200) {
        if (response.status === 500) { // 服务器断开
            alert("服务器断开,请稍后重试。");
        }
        return Promise.reject(new Error(response.message || 'Error'))
    } else {
        // 清除登陆的信息,提示用户重新登陆!
        if (response.data.status == "401") {
            localStorage.removeItem("user");
            localStorage.removeItem("tokenId");
            // 清楚vuex中的值
            vuex.commit("user", null);
            alert(response.data.msg);
        }
        return response
    }
}, error => {
    if (error.response.status === 401) { // token失效 ,重新获取token
        alert("不允许访问,请联系网站!");
    } else if (error.response.status === 500) { // 服务器断开
        alert("服务器断开,请稍后重试。");
    } else if (error.response.status === 403) { //无auth授权,后台不允许访问
        alert("不允许访问,请联系网站");
    }
    return Promise.reject(error)
})


export default service;

使用的话可以看上一篇文章 :

vue中给axios添加拦截器,自动携带tokenId

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值