zhengyiming
5 天以前 dd0a3e0ed394983c4fbacdab64cad6f8de5b4884
apps/bMiniApp/src/utils/request/index.ts
@@ -4,7 +4,6 @@
import Taro from '@tarojs/taro';
import { getToken } from '@/utils';
import { tokenIsExpired, Message, SensitiveManage } from '@12333/utils';
import * as accountServices from '@12333/services/api/Account';
import { useUserStoreWithOut } from '@/stores/modules/user';
const RefreshTokenUrl = '/gettokenbyrefreshtoken';
@@ -51,9 +50,13 @@
  success: boolean;
  data: any;
  /**
   * http状态吗
   */
  code?: number;
  /**
   * 错误码
   */
  error?: number;
  errorCode?: string;
  /**
   * 错误信息
   */
@@ -150,7 +153,7 @@
    // 错误抛出
    errorThrower: (res) => {
      const { success, data, error: errorCode, msg, showType } = res;
      const { success, data, errorCode, msg, showType } = res;
      if (!success) {
        const error: any = new Error(msg);
        error.name = 'BizError';
@@ -190,34 +193,9 @@
        return new Promise((resolve, reject) => {
          if (userInfo && token && $config.withCredentials) {
            if (tokenIsExpired(userInfo)) {
              if (!Request.refreshTokenPending) {
                Request.refreshTokenPending = true;
                // token过期刷新
                useUserStoreWithOut()
                  .getTokenByRefreshToken({
                    refreshToken: userInfo.refreshToken,
                    clientId: userStore.accountInfo?.client_id,
                  })
                  .then((res) => {
                    $config.headers['Authorization'] = 'Bearer ' + res.accessToken;
                    Request.requests.forEach((cb) => cb(res.accessToken));
                    Request.requests = [];
                  })
                  .catch((err) => {
                    Request.requests.forEach((cb) => cb());
                    Request.requests = [];
                    reject(err);
                  })
                  .finally(() => {
                    Request.refreshTokenPending = false;
                  });
              }
              resolve(Request.retryOriginalRequest($config));
            } else {
              $config.headers['Authorization'] = 'Bearer ' + token;
              resolve($config);
            }
            $config.headers['Authorization'] = 'Bearer ' + userInfo.accessToken;
            $config.headers['X-Authorization'] = 'Bearer ' + userInfo.refreshToken;
            resolve($config);
          } else {
            resolve($config);
          }
@@ -236,11 +214,20 @@
        const { needNProcess, getResponse = false } = $config;
        const userStore = useUserStoreWithOut();
        if (response.headers['x-access-token']) {
          const tokenInfo: API.PasswordLoginCommandCallback = {
            accessToken: response.headers['access-token'],
            refreshToken: response.headers['x-access-token'],
          };
          userStore.setTokenAction(tokenInfo);
          userStore.setUserInfoAction(tokenInfo);
        }
        endLoading();
        return getResponse
          ? response
          : SensitiveManage.filterSensitiveWord((response.data as any).result);
        return getResponse ? response : SensitiveManage.filterSensitiveWord(response.data.data);
      },
      (error) => {
        endLoading();