token续期操作

//在axios的请求拦截器中进行操作
request.interceptors.request.use((config) => {
  const token = sessionStorage.getItem('token')
  var isRefreshing = false // 是否有请求正在刷新token
  // 如果 token 存在
  if (token) {
    // 让每个请求携带自定义 token 请根据实际情况自行修改
    config.headers['Authorization'] = token
    // token续期
    const code = jwtDecode(token)
    const current = new Date().getTime()
    //  过期时间小于当前时间
    if (code.exp * 1000 < current) {
      notification.error({
        message: '未登录',
        description: '请重新登录'
      })
      sessionStorage.clear() // 清除缓存
      location.replace('/iam-admin/#/login') // 跳转登陆页
      // 过期时间减去十分钟小于于当前时间
    } else if (code.exp * 1000 - 10 * 60 * 1000 < current && config.url.indexOf('/renewal/token') === -1) {
      if (!isRefreshing) {
        isRefreshing = true
        // 调用续期方法
        refreshToken({}).then((res) => {
          if (res.success) {
            console.log(res, 'res')
            isRefreshing = false
            window.sessionStorage.setItem('token', res.data)
          }
        })
      }
    }
  }
  return config
}, (err)=>{
//报错操作
})```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值