改进 登录逻辑
All checks were successful
Build / build (push) Successful in 1m31s

This commit is contained in:
ivamp 2024-10-17 22:06:36 +08:00
parent 99a1736d26
commit 0e8b8aad9b
2 changed files with 14 additions and 5 deletions

View File

@ -83,7 +83,7 @@ const onScroll = (e: Event) => {
<n-layout :native-scrollbar="isMobile">
<div class="!pt-2">
<div v-if="userStore.logined">
<div v-if="userStore.logined && !userStore.isExpired()">
<ChatLayout>
<router-view :key="route.path"> </router-view>
</ChatLayout>

View File

@ -42,10 +42,15 @@ export const useUserStore = defineStore("user", {
this.logined = true;
},
checkAndRefresh() {
if (this.logined) {
if (this.expired_at - Date.now() < 60000) {
this.refresh();
}
// 检测是否过期
if (this.expired_at - Date.now() < 0) {
this.refresh();
} else if (
this.logined &&
this.expired_at - Date.now() > 600 &&
this.expired_at - Date.now() < 1000
) {
this.refresh();
}
},
setupTimer() {
@ -80,6 +85,7 @@ export const useUserStore = defineStore("user", {
if (error.response.status === 401) {
console.log("Refresh token failed");
}
// logout
this.logout();
clearInterval(timer);
@ -94,5 +100,8 @@ export const useUserStore = defineStore("user", {
getIdToken() {
return this.id_token;
},
isExpired() {
return this.expired_at - Date.now() < 0;
},
},
});