mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-11-04 10:57:10 +08:00 
			
		
		
		
	refactor: 优化超时登录处理逻辑
This commit is contained in:
		@@ -22,8 +22,11 @@ const setTimer = (timer: number) => {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const clearTimer = () => {
 | 
					const clearTimer = () => {
 | 
				
			||||||
  clearInterval(Number(localStorage.getItem(TIMER_KEY)));
 | 
					  const timer = localStorage.getItem(TIMER_KEY);
 | 
				
			||||||
 | 
					  if (timer) {
 | 
				
			||||||
 | 
					    clearInterval(Number(timer));
 | 
				
			||||||
    localStorage.removeItem(TIMER_KEY);
 | 
					    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);
 | 
				
			||||||
  }
 | 
					  },
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user