rk
23 小时以前 38d111cb6defedff3bf06314ca30d22a01faae22
mini-program/utils/http.interceptor.js
@@ -1,17 +1,10 @@
const install = (Vue, vm) => {
   // 是否正在刷新的标记
   let isRefreshing = false
   // 重试队列,每一项将是一个待执行的函数形式
   let requests = []
   // 请求队列
   let requestAll = []
   // 请求拦截器
   uni.$u.http.interceptors.request.use((config) => {
      // const Headtoken = vm.$store.state.token
      // if (Headtoken) {
         config.header['token'] = 'eyJhbGciOiJIUzUxMiJ9.eyJpZCI6IjEyMyIsImV4cCI6MTc2OTczODQwNn0.WcGv4N47h6X87vVKtiXW4bSsfDIqRNAqZFdpDkbY1vJDjrn6H6ioQVhjNJDF3OAGO16tkvX4MTgXkbiyW40v1Q';
      // }
      const Headtoken = vm.$store.state.token
      if (Headtoken) {
         config.header['token'] = Headtoken;
      }
      return config
   }, config => {
      return Promise.reject(config)
@@ -19,37 +12,6 @@
   
   // 响应拦截器
   uni.$u.http.interceptors.response.use((response) => {
      // 登录过期
      if (response.data.code === 401) {
         if (!isRefreshing) {   // 是否已经执行刷新
            isRefreshing = true
            uni.login({
               provider: 'weixin',
               success: async function (loginRes) {
                  let { code } = loginRes;
                  uni.request({
                     url: vm.$baseUrl + 'mobile/system/login',
                     method: "GET",
                     data: { code },
                     success: (res) => {
                        isRefreshing = false
                        vm.$store.commit('setToken', res.data.data)
                        // 已经刷新了token,将所有队列中的请求进行重试
                        requests.forEach(item => item(res.data.data))
                        requests = []
                     }
                  });
               }
            });
         }
         return new Promise((resolve) => {
            // 将resolve放进队列,用一个函数形式来保存,等token刷新后直接执行
            requests.push(token => {
               response.config.header['eva-auth-token'] = token
               resolve(uni.$u.http.request(response.config));
            })
         })
      }
      // 接口业务报错
      if (response.data.code !== 200) {
         uni.showToast({