0ef0fe16 by lihua

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

1 parent e36119aa
...@@ -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>
......
...@@ -82,9 +82,9 @@ const useUserStore = defineStore( ...@@ -82,9 +82,9 @@ const useUserStore = defineStore(
82 }); 82 });
83 } 83 }
84 84
85 function refreshUserToken(isExec = true) { 85 async function refreshUserToken(isExec = true) {
86 let expiresIn = localStorage.getItem('expiresIn'); 86 let expiresIn = localStorage.getItem('expiresIn');
87 if (!expiresIn) { 87 if (!expiresIn || (parseInt(expiresIn) - Date.now()) < 0) {
88 return; 88 return;
89 } 89 }
90 const process = async () => { 90 const process = async () => {
...@@ -98,7 +98,9 @@ const useUserStore = defineStore( ...@@ -98,7 +98,9 @@ const useUserStore = defineStore(
98 } 98 }
99 } 99 }
100 } 100 }
101 isExec && process(); 101 if (isExec) {
102 await process();
103 }
102 /** 轮询是否需要刷新token。如果是同步多个调用,则不处理错误的信息。 */ 104 /** 轮询是否需要刷新token。如果是同步多个调用,则不处理错误的信息。 */
103 setInterval(async () => { 105 setInterval(async () => {
104 process(); 106 process();
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!