Преглед изворни кода

fix: 401拦截器尊重skipErrorHandler,避免SSO登录后误跳转

- request-config.tsx: 401拦截器增加skipErrorHandler检查
- app.tsx: fetchUserInfo catch块不跳过错误处理时401才跳转
kinglee пре 1 недеља
родитељ
комит
d2b16e9429
2 измењених фајлова са 5 додато и 2 уклоњено
  1. 4 1
      src/app.tsx
  2. 1 1
      src/request-config.tsx

+ 4 - 1
src/app.tsx

@@ -96,7 +96,10 @@ export async function getInitialState(): Promise<{
           duration: 5
         });
       }
-      history.push(DEFAULT_ENTER_PAGE.login);
+      // Only redirect if not skipping error handler, or if error is not 401
+      if (!config?.skipErrorHandler) {
+        history.push(DEFAULT_ENTER_PAGE.login);
+      }
     }
     return {} as Global.UserInfo;
   };

+ 1 - 1
src/request-config.tsx

@@ -33,7 +33,7 @@ export const requestConfig: RequestConfig = {
           content: <ErrorMessageContent errMsg={errMsg}></ErrorMessageContent>
         });
       }
-      if (response?.status === 401) {
+      if (response?.status === 401 && !opts?.skipErrorHandler) {
         // Token 过期或无效,清除本地状态并跳转登录
         localStorage.removeItem('token');
         localStorage.removeItem('refresh_token');