Commit 0d0708409c4adbe7a0c5e33abf5307031147eaeb
1 parent
b6d5b079
feat(project-setting): added sessionTimeoutProcessing project configuration item,fix #772
Showing
5 changed files
with
22 additions
and
3 deletions
CHANGELOG.zh_CN.md
src/enums/appEnum.ts
src/settings/projectSetting.ts
... | ... | @@ -7,6 +7,7 @@ import { |
7 | 7 | ThemeEnum, |
8 | 8 | RouterTransitionEnum, |
9 | 9 | SettingButtonPositionEnum, |
10 | + SessionTimeoutProcessingEnum, | |
10 | 11 | } from '/@/enums/appEnum'; |
11 | 12 | import { SIDE_BAR_BG_COLOR_LIST, HEADER_PRESET_BG_COLOR_LIST } from './designSetting'; |
12 | 13 | import { primaryColor } from '../../build/config/themeConfig'; |
... | ... | @@ -28,6 +29,9 @@ const setting: ProjectConfig = { |
28 | 29 | // Permission-related cache is stored in sessionStorage or localStorage |
29 | 30 | permissionCacheType: CacheTypeEnum.LOCAL, |
30 | 31 | |
32 | + // Session timeout processing | |
33 | + sessionTimeoutProcessing: SessionTimeoutProcessingEnum.ROUTE_JUMP, | |
34 | + | |
31 | 35 | // color |
32 | 36 | themeColor: primaryColor, |
33 | 37 | ... | ... |
src/utils/http/axios/checkStatus.ts
... | ... | @@ -4,10 +4,12 @@ import { useI18n } from '/@/hooks/web/useI18n'; |
4 | 4 | // import router from '/@/router'; |
5 | 5 | // import { PageEnum } from '/@/enums/pageEnum'; |
6 | 6 | import { useUserStoreWidthOut } from '/@/store/modules/user'; |
7 | +import projectSetting from '/@/settings/projectSetting'; | |
8 | +import { SessionTimeoutProcessingEnum } from '/@/enums/appEnum'; | |
7 | 9 | |
8 | 10 | const { createMessage, createErrorModal } = useMessage(); |
9 | - | |
10 | 11 | const error = createMessage.error!; |
12 | +const stp = projectSetting.sessionTimeoutProcessing; | |
11 | 13 | |
12 | 14 | export function checkStatus( |
13 | 15 | status: number, |
... | ... | @@ -27,8 +29,12 @@ export function checkStatus( |
27 | 29 | // Return to the current page after successful login. This step needs to be operated on the login page. |
28 | 30 | case 401: |
29 | 31 | errMessage = t('sys.api.errMsg401'); |
30 | - userStore.setToken(undefined); | |
31 | - userStore.setSessionTimeout(true); | |
32 | + if (stp === SessionTimeoutProcessingEnum.PAGE_COVERAGE) { | |
33 | + userStore.setToken(undefined); | |
34 | + userStore.setSessionTimeout(true); | |
35 | + } else { | |
36 | + userStore.logout(true); | |
37 | + } | |
32 | 38 | break; |
33 | 39 | case 403: |
34 | 40 | errMessage = t('sys.api.errMsg403'); | ... | ... |
types/config.d.ts
... | ... | @@ -5,6 +5,7 @@ import { |
5 | 5 | ThemeEnum, |
6 | 6 | RouterTransitionEnum, |
7 | 7 | SettingButtonPositionEnum, |
8 | + SessionTimeoutProcessingEnum, | |
8 | 9 | } from '/@/enums/appEnum'; |
9 | 10 | |
10 | 11 | import { CacheTypeEnum } from '/@/enums/cacheEnum'; |
... | ... | @@ -89,6 +90,8 @@ export interface ProjectConfig { |
89 | 90 | settingButtonPosition: SettingButtonPositionEnum; |
90 | 91 | // Permission mode |
91 | 92 | permissionMode: PermissionModeEnum; |
93 | + // Session timeout processing | |
94 | + sessionTimeoutProcessing: SessionTimeoutProcessingEnum; | |
92 | 95 | // Website gray mode, open for possible mourning dates |
93 | 96 | grayMode: boolean; |
94 | 97 | // Whether to turn on the color weak mode | ... | ... |