mirror of
https://gitee.com/JavaLionLi/plus-ui.git
synced 2026-09-16 00:38:19 +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 };
|
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() {
|
export function globalHeaders() {
|
||||||
return {
|
return {
|
||||||
Authorization: `Bearer ${getToken() || ''}`,
|
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) {
|
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 { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
||||||
import type { RuntimeMenuItem } from '@/api/types';
|
import type { RuntimeMenuItem } from '@/api/types';
|
||||||
import { logout } from '@/api/login';
|
import { logout } from '@/api/login';
|
||||||
|
import { isHandledRequestError } from '@/api/request';
|
||||||
import defaultAvatar from '@/assets/images/profile.jpg';
|
import defaultAvatar from '@/assets/images/profile.jpg';
|
||||||
import appLogo from '@/assets/logo/logo.png';
|
import appLogo from '@/assets/logo/logo.png';
|
||||||
import ExternalLinkButton from '@/components/layout/ExternalLinkButton';
|
import ExternalLinkButton from '@/components/layout/ExternalLinkButton';
|
||||||
@ -81,7 +82,9 @@ export default function BasicLayout() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
if (!isHandledRequestError(error)) {
|
||||||
message.error(error.message || '加载用户信息失败');
|
message.error(error.message || '加载用户信息失败');
|
||||||
|
}
|
||||||
closePush();
|
closePush();
|
||||||
pushStartedRef.current = false;
|
pushStartedRef.current = false;
|
||||||
removeToken();
|
removeToken();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user