refactor: 优化超时登录处理逻辑
This commit is contained in:
parent
c44162d431
commit
d5da1847e3
@ -22,8 +22,11 @@ const setTimer = (timer: number) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const clearTimer = () => {
|
const clearTimer = () => {
|
||||||
clearInterval(Number(localStorage.getItem(TIMER_KEY)));
|
const timer = localStorage.getItem(TIMER_KEY);
|
||||||
localStorage.removeItem(TIMER_KEY);
|
if (timer) {
|
||||||
|
clearInterval(Number(timer));
|
||||||
|
localStorage.removeItem(TIMER_KEY);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export { isLogin, getToken, setToken, clearToken, setTimer, clearTimer };
|
export { isLogin, getToken, setToken, clearToken, setTimer, clearTimer };
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import type { AxiosRequestConfig, AxiosResponse } from 'axios';
|
import type { AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||||
import { useUserStore } from '@/store';
|
import { useUserStore } from '@/store';
|
||||||
import { getToken } from '@/utils/auth';
|
import { getToken, clearTimer } from '@/utils/auth';
|
||||||
import modalErrorWrapper from '@/utils/modal-error-wrapper';
|
import modalErrorWrapper from '@/utils/modal-error-wrapper';
|
||||||
import messageErrorWrapper from '@/utils/message-error-wrapper';
|
import messageErrorWrapper from '@/utils/message-error-wrapper';
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ axios.interceptors.request.use(
|
|||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
// response interceptors
|
// response interceptors
|
||||||
@ -51,8 +51,7 @@ axios.interceptors.response.use(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
if ([401].includes(res.code) && response.config.url !== '/auth/user/info') {
|
if ([401].includes(res.code) && response.config.url !== '/auth/user/info') {
|
||||||
const userStore = useUserStore();
|
clearTimer();
|
||||||
userStore.logout();
|
|
||||||
modalErrorWrapper({
|
modalErrorWrapper({
|
||||||
title: '确认退出',
|
title: '确认退出',
|
||||||
content: res.msg,
|
content: res.msg,
|
||||||
@ -60,6 +59,8 @@ axios.interceptors.response.use(
|
|||||||
escToClose: false,
|
escToClose: false,
|
||||||
okText: '重新登录',
|
okText: '重新登录',
|
||||||
async onOk() {
|
async onOk() {
|
||||||
|
const userStore = useUserStore();
|
||||||
|
userStore.logout();
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -77,5 +78,5 @@ axios.interceptors.response.use(
|
|||||||
duration: 5 * 1000,
|
duration: 5 * 1000,
|
||||||
});
|
});
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user