Browse Source

chore: sso expired

master
wangxiang 2 years ago
parent
commit
e71896d70b
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 26
      src/utils/http/axios/checkStatus.ts
  2. 2
      types/config.d.ts

26
src/utils/http/axios/checkStatus.ts

@ -11,11 +11,14 @@ import { useI18n } from '/@/hooks/web/useI18n';
import { useUserStoreWithOut } from '/@/store/modules/user'; import { useUserStoreWithOut } from '/@/store/modules/user';
import projectSetting from '/@/settings/projectSetting'; import projectSetting from '/@/settings/projectSetting';
import { SessionTimeoutProcessingEnum } from '/@/enums/appEnum'; import { SessionTimeoutProcessingEnum } from '/@/enums/appEnum';
import { logout } from '/@/api/platform/core/controller/user';
import { AxiosResponse } from 'axios';
import { ExceptionEnum } from '/@/enums/exceptionEnum';
const stp = projectSetting.sessionTimeoutProcessing; const stp = projectSetting.sessionTimeoutProcessing;
const { createMessage, createErrorModal } = useMessage(); const { createMessage, createErrorModal } = useMessage();
export function checkStatus(status: number, msg: string, errorMessageMode: ErrorMessageMode = 'message'): boolean { export function checkStatus(status: number, msg: string, errorMessageMode: ErrorMessageMode = 'message', response: AxiosResponse): boolean {
const { t } = useI18n(); const { t } = useI18n();
const userStore = useUserStoreWithOut(); const userStore = useUserStoreWithOut();
let errMessage = ''; let errMessage = '';
@ -41,15 +44,22 @@ export function checkStatus(status: number, msg: string, errorMessageMode: Error
errMessage = t('sys.api.errMsg408'); errMessage = t('sys.api.errMsg408');
break; break;
case 424: case 424:
// token 过期特殊处理返回 424 不是 401 // 处理SSO用户未配置用户数据
errMessage = t('sys.api.errMsg424'); if (response.data.code === ExceptionEnum.PAGE_NOT_DATA) {
if (stp === SessionTimeoutProcessingEnum.PAGE_COVERAGE) { errMessage = t('sys.api.errMsg42401');
userStore.setAccessToken('');
userStore.setSessionTimeout(true);
} else { } else {
userStore.logout(true); // token 过期特殊处理返回 424 不是 401
errMessage = t('sys.api.errMsg424');
if (stp === SessionTimeoutProcessingEnum.PAGE_COVERAGE) {
// 需要保证其他sso系统用户退出
logout().then(() => {
userStore.setAccessToken('');
userStore.setSessionTimeout(true);
});
} else {
userStore.logout(true);
}
} }
userStore.logout(true);
break; break;
case 426: case 426:
errMessage = t('sys.api.errMsg426'); errMessage = t('sys.api.errMsg426');

2
types/config.d.ts vendored

@ -93,7 +93,7 @@ export interface ProjectConfig {
showDarkModeToggle: boolean; showDarkModeToggle: boolean;
// 配置按钮的显示位置 // 配置按钮的显示位置
settingButtonPosition: SettingButtonPositionEnum; settingButtonPosition: SettingButtonPositionEnum;
// Session timeout processing // 会话超时处理
sessionTimeoutProcessing: SessionTimeoutProcessingEnum; sessionTimeoutProcessing: SessionTimeoutProcessingEnum;
// 网站灰色模式,打开可能的哀悼日期 // 网站灰色模式,打开可能的哀悼日期
grayMode: boolean; grayMode: boolean;

Loading…
Cancel
Save