mirror of
https://gitee.com/JavaLionLi/plus-ui.git
synced 2026-09-13 07:43:43 +08:00
fix 修复 登录页后端403会出现多个弹窗问题
This commit is contained in:
parent
565564a8a3
commit
9bcb8a9f27
@ -26,6 +26,18 @@ export interface RequestConfig<D = unknown> extends AxiosRequestConfig<D> {
|
||||
|
||||
export const isRelogin = { show: false };
|
||||
|
||||
type HandledRequestError = Error & { isHandled?: boolean };
|
||||
|
||||
function createHandledError(message: string) {
|
||||
const error = new Error(message) as HandledRequestError;
|
||||
error.isHandled = true;
|
||||
return error;
|
||||
}
|
||||
|
||||
export function isHandledRequestError(error: unknown) {
|
||||
return Boolean((error as { isHandled?: boolean } | undefined)?.isHandled);
|
||||
}
|
||||
|
||||
export function globalHeaders() {
|
||||
return {
|
||||
Authorization: `Bearer ${getToken() || ''}`,
|
||||
@ -196,7 +208,7 @@ service.interceptors.response.use(
|
||||
}
|
||||
});
|
||||
}
|
||||
return Promise.reject(new Error('无效的会话,或者会话已过期,请重新登录。'));
|
||||
return Promise.reject(createHandledError('无效的会话,或者会话已过期,请重新登录。'));
|
||||
}
|
||||
|
||||
if (code === SERVER_ERROR || code === WARN || code !== SUCCESS) {
|
||||
|
||||
@ -10,6 +10,7 @@ import dayjs from 'dayjs';
|
||||
import { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
||||
import type { RuntimeMenuItem } from '@/api/types';
|
||||
import { logout } from '@/api/login';
|
||||
import { isHandledRequestError } from '@/api/request';
|
||||
import defaultAvatar from '@/assets/images/profile.jpg';
|
||||
import appLogo from '@/assets/logo/logo.png';
|
||||
import ExternalLinkButton from '@/components/layout/ExternalLinkButton';
|
||||
@ -81,7 +82,9 @@ export default function BasicLayout() {
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
message.error(error.message || '加载用户信息失败');
|
||||
if (!isHandledRequestError(error)) {
|
||||
message.error(error.message || '加载用户信息失败');
|
||||
}
|
||||
closePush();
|
||||
pushStartedRef.current = false;
|
||||
removeToken();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user