52690beb by lihua

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

1 parent f21ee3e6
......@@ -56,14 +56,22 @@ onMounted(() => {
hotkeys('alt+i', () => {
eventBus.emit('global-system-info-toggle')
})
//判断token的过期时间。
if (!route.fullPath?.includes('?code=')) {
if (!window.location?.href?.includes('?code=')) {
userStore.refreshUserToken();
} else {
localStorage.setItem('token', '');
localStorage.setItem('code', '');
localStorage.setItem('state', '');
localStorage.setItem('refresh_token', "");
localStorage.setItem('expiresIn', '');
}
})
import.meta.env.VITE_APP_DEBUG_TOOL === 'eruda' && eruda.init()
onUnmounted(() => {
window.onresize = null
})
</script>
<template>
......
......@@ -81,9 +81,9 @@ const useUserStore = defineStore(
});
}
function refreshUserToken(isExec = true) {
async function refreshUserToken(isExec = true) {
let expiresIn = localStorage.getItem('expiresIn');
if (!expiresIn || (parseInt(expiresIn) - Date.now()) < -1700000) {
if (!expiresIn || (parseInt(expiresIn) - Date.now()) < 0) {
return;
}
const process = async () => {
......@@ -97,7 +97,9 @@ const useUserStore = defineStore(
}
}
}
isExec && process();
if (isExec) {
await process();
}
/** 轮询是否需要刷新token。如果是同步多个调用,则不处理错误的信息。 */
setInterval(async () => {
process();
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!