52690beb by lihua

尝试解决登录成功后又报token过期重新登录的问题

1 parent f21ee3e6
...@@ -56,14 +56,22 @@ onMounted(() => { ...@@ -56,14 +56,22 @@ onMounted(() => {
56 hotkeys('alt+i', () => { 56 hotkeys('alt+i', () => {
57 eventBus.emit('global-system-info-toggle') 57 eventBus.emit('global-system-info-toggle')
58 }) 58 })
59 59 if (!window.location?.href?.includes('?code=')) {
60 //判断token的过期时间。
61 if (!route.fullPath?.includes('?code=')) {
62 userStore.refreshUserToken(); 60 userStore.refreshUserToken();
61 } else {
62 localStorage.setItem('token', '');
63 localStorage.setItem('code', '');
64 localStorage.setItem('state', '');
65 localStorage.setItem('refresh_token', "");
66 localStorage.setItem('expiresIn', '');
63 } 67 }
64 }) 68 })
65 69
66 import.meta.env.VITE_APP_DEBUG_TOOL === 'eruda' && eruda.init() 70 import.meta.env.VITE_APP_DEBUG_TOOL === 'eruda' && eruda.init()
71
72 onUnmounted(() => {
73 window.onresize = null
74 })
67 </script> 75 </script>
68 76
69 <template> 77 <template>
......
...@@ -81,9 +81,9 @@ const useUserStore = defineStore( ...@@ -81,9 +81,9 @@ const useUserStore = defineStore(
81 }); 81 });
82 } 82 }
83 83
84 function refreshUserToken(isExec = true) { 84 async function refreshUserToken(isExec = true) {
85 let expiresIn = localStorage.getItem('expiresIn'); 85 let expiresIn = localStorage.getItem('expiresIn');
86 if (!expiresIn || (parseInt(expiresIn) - Date.now()) < -1700000) { 86 if (!expiresIn || (parseInt(expiresIn) - Date.now()) < 0) {
87 return; 87 return;
88 } 88 }
89 const process = async () => { 89 const process = async () => {
...@@ -97,7 +97,9 @@ const useUserStore = defineStore( ...@@ -97,7 +97,9 @@ const useUserStore = defineStore(
97 } 97 }
98 } 98 }
99 } 99 }
100 isExec && process(); 100 if (isExec) {
101 await process();
102 }
101 /** 轮询是否需要刷新token。如果是同步多个调用,则不处理错误的信息。 */ 103 /** 轮询是否需要刷新token。如果是同步多个调用,则不处理错误的信息。 */
102 setInterval(async () => { 104 setInterval(async () => {
103 process(); 105 process();
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!