MrShi
17 小时以前 cc61f4a42e135360133f7715376e029b5904f001
mini-program/utils/http.interceptor.js
@@ -6,9 +6,23 @@
   
   // 请求拦截器
   uni.$u.http.interceptors.request.use((config) => {
      const Headtoken = vm.$store.state.token
      if (Headtoken) {
         config.header['token'] = Headtoken;
      if(config.data && config.data.tokenType===1){
         config.header['tokenType'] = config.data.tokenType;
         const HeadShoptoken = vm.$store.state.shopToken
         if (HeadShoptoken) {
            config.header['token'] = HeadShoptoken;
         }
      }else if(config.params  && config.params.tokenType===1){
         config.header['tokenType'] = config.data.tokenType;
         const HeadShoptoken = vm.$store.state.shopToken
         if (HeadShoptoken) {
            config.header['token'] = HeadShoptoken;
         }
      }else{
         const Headtoken = vm.$store.state.token
         if (Headtoken) {
            config.header['token'] = Headtoken;
         }
      }
      return config
   }, config => {
@@ -18,7 +32,7 @@
   // 响应拦截器
   uni.$u.http.interceptors.response.use((response) => {
      // 登录过期
      if (response.data.code === 5111) {
      if ([5111, 5112].includes(response.data.code)) {
         if (!isRefreshing) {   // 是否已经执行刷新
            isRefreshing = true
            uni.login({
@@ -30,12 +44,23 @@
                     method: "GET",
                     data: { code },
                     success: (res) => {
                        isRefreshing = false
                        vm.$store.commit('setToken', res.data.token)
                        vm.$store.commit('setUserInfo', res.data.member)
                        vm.$store.commit('setOpenId', res.data.member.openId)
                        isRefreshing = false
                        let isLogin = false
                        if (res.data.data) {
                           if (res.data.data.token) {
                              isLogin = true
                              vm.$store.commit('setToken', res.data.data.token)
                              vm.$store.commit('setUserInfo', res.data.data.member)
                           }
                           vm.$store.commit('setOpenId', res.data.data.openid)
                        }
                        if (!isLogin) {
                           if (response.config.header && response.config.header.tokenType != 1) {
                              uni.switchTab({
                                 url: '/pages/index/index'
                              })
                           }
                        }
                        // 已经刷新了token,将所有队列中的请求进行重试
                        requests.forEach(item => item(res.data.data))
                        requests = []