Просмотр исходного кода

token失效时判断用户是否刷新进入页面,如果是则为首次登录或者过期后刷新页面,则不提示用户登录过期,直接跳转到登录页面

yanglzh 2 лет назад
Родитель
Сommit
e03d66049c
2 измененных файлов с 7 добавлено и 1 удалено
  1. 3 0
      src/App.vue
  2. 4 1
      src/utils/request.ts

+ 3 - 0
src/App.vue

@@ -18,6 +18,9 @@ import LockScreen from '/@/layout/lockScreen/index.vue';
 import Setings from '/@/layout/navBars/breadcrumb/setings.vue';
 import CloseFull from '/@/layout/navBars/breadcrumb/closeFull.vue';
 import api from '/@/api/system';
+// 进入系统的时间
+sessionStorage.setItem('comeTime', Date.now().toString())
+
 export default defineComponent({
 	name: 'app',
 	components: { LockScreen, Setings, CloseFull },

+ 4 - 1
src/utils/request.ts

@@ -31,13 +31,16 @@ service.interceptors.response.use(
 		const res = response.data;
 		const code = response.data.code
 		if (code === 401) {
+			if (Date.now() - sessionStorage.comeTime < 1000) {
+				localStorage.clear(); // 清除浏览器全部临时缓存
+				window.location.href = '/'; // 去登录页
+			}
 			ElMessageBox.alert('登录状态已过期,请重新登录', '提示',
 				{ confirmButtonText: '确定', showCancelButton: false, closeOnHashChange: false, closeOnPressEscape: false, closeOnClickModal: false, showClose: false })
 				.then(() => {
 					localStorage.clear(); // 清除浏览器全部临时缓存
 					window.location.href = '/'; // 去登录页
 				})
-				.catch(() => { });
 		} else if (code === undefined && res.message === undefined) { // 可能是下载文件
 			return response
 		} else if (code !== 0) {