axios token过期刷新 重新续约

本文介绍了在Vue项目中如何使用axios处理token过期的问题,通过设置拦截器实现token自动刷新和重新获取,确保用户无感知地保持会话状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

window.isRefreshing = false;
// 存储请求的数组
let refreshSubscribers = [];

/*将所有的请求都push到数组中*/
function subscribeTokenRefresh(cb) {
  refreshSubscribers.push(cb);
}

// 数组中的请求得到新的token之后自执行,用新的token去请求数据
function onRrefreshed(token) {
  refreshSubscribers.map(cb => cb(token));
}

// 判断token是否过期
function isRefreshTokenExpired() {
  let oData = localStorage.getItem('time'); // 本地token存储的时间
  let nDta = new Date().getTime();
  let stamp = nDta - oData;
  let minutes = parseInt((stamp % (1000 * 60 * 60)) / (1000 * 60));
  return minutes >= 110? true : false;
}

// 刷新token的请求
function getRefreshToken() {
    return axios.get(url, {params: {
        data
    }}).then((res) => {
        return Promise.resolve(res.data)
    }) 
}

axios.interceptors.request.use(config => {
    const token = localStorage.getItem('token')
    /*判断token是否存在*/
    if (token) {
      // console.log(token)
      config.headers.token = token
      config.headers['Content-Type'] = 'application/json;c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值