- 移除 VITE_SERVICE_LOGOUT_CODES 中的 1002023000 状态码 - 将 VITE_SERVICE_EXPIRED_TOKEN_CODES 从 1002023001 改为 1002023000 - 修改 fetchRefreshToken 函数使用 params 传递 refreshToken 并设置 skipAuth - 添加 skipAuth 配置选项避免给公开接口带上过期 access 头 - 实现 notifySessionExpired 函数确保并发请求只弹一次会话失效提示 - 在登录成功后复位会话失效标志以支持下次正常提示 - 更新 handleExpiredRequest 使用 refreshTokenPromise 替代 refreshTokenFn
33 lines
964 B
TypeScript
33 lines
964 B
TypeScript
export const SESSION_EXPIRED_MESSAGE = '登录已失效,请重新登录';
|
|
|
|
export interface ErrorMessageSuppressOptions {
|
|
backendErrorCode: string;
|
|
suppressErrorMessage?: boolean;
|
|
logoutCodes: string[];
|
|
modalLogoutCodes: string[];
|
|
expiredTokenCodes: string[];
|
|
}
|
|
|
|
export interface BackendFailDeferOptions {
|
|
suppressErrorMessage?: boolean;
|
|
skipTokenRefresh?: boolean;
|
|
}
|
|
|
|
export function parseServiceCodes(codes?: string) {
|
|
return codes?.split(',').filter(Boolean) || [];
|
|
}
|
|
|
|
export function shouldDeferBackendFailToCaller(options: BackendFailDeferOptions) {
|
|
return Boolean(options.suppressErrorMessage && options.skipTokenRefresh);
|
|
}
|
|
|
|
export function shouldSuppressErrorMessage(options: ErrorMessageSuppressOptions) {
|
|
if (options.suppressErrorMessage) {
|
|
return true;
|
|
}
|
|
|
|
const handledCodes = [...options.logoutCodes, ...options.modalLogoutCodes, ...options.expiredTokenCodes];
|
|
|
|
return handledCodes.includes(options.backendErrorCode);
|
|
}
|