diff --git a/continew-admin-ui/src/utils/auth.ts b/continew-admin-ui/src/utils/auth.ts index 394b5b60..5d4d5ed3 100644 --- a/continew-admin-ui/src/utils/auth.ts +++ b/continew-admin-ui/src/utils/auth.ts @@ -22,8 +22,11 @@ const setTimer = (timer: number) => { }; const clearTimer = () => { - clearInterval(Number(localStorage.getItem(TIMER_KEY))); - localStorage.removeItem(TIMER_KEY); + const timer = localStorage.getItem(TIMER_KEY); + if (timer) { + clearInterval(Number(timer)); + localStorage.removeItem(TIMER_KEY); + } }; export { isLogin, getToken, setToken, clearToken, setTimer, clearTimer }; diff --git a/continew-admin-ui/src/utils/request.ts b/continew-admin-ui/src/utils/request.ts index fdf0b6ea..1846a05d 100644 --- a/continew-admin-ui/src/utils/request.ts +++ b/continew-admin-ui/src/utils/request.ts @@ -1,7 +1,7 @@ import axios from 'axios'; import type { AxiosRequestConfig, AxiosResponse } from 'axios'; import { useUserStore } from '@/store'; -import { getToken } from '@/utils/auth'; +import { getToken, clearTimer } from '@/utils/auth'; import modalErrorWrapper from '@/utils/modal-error-wrapper'; import messageErrorWrapper from '@/utils/message-error-wrapper'; @@ -33,7 +33,7 @@ axios.interceptors.request.use( }, (error) => { return Promise.reject(error); - } + }, ); // response interceptors @@ -51,8 +51,7 @@ axios.interceptors.response.use( return res; } if ([401].includes(res.code) && response.config.url !== '/auth/user/info') { - const userStore = useUserStore(); - userStore.logout(); + clearTimer(); modalErrorWrapper({ title: '确认退出', content: res.msg, @@ -60,6 +59,8 @@ axios.interceptors.response.use( escToClose: false, okText: '重新登录', async onOk() { + const userStore = useUserStore(); + userStore.logout(); window.location.reload(); }, }); @@ -77,5 +78,5 @@ axios.interceptors.response.use( duration: 5 * 1000, }); return Promise.reject(error); - } + }, );