qnc-webview/src/App.vue
2025-01-04 00:38:57 +08:00

45 lines
1.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script setup>
import { RouterLink, RouterView } from 'vue-router'
import WechatOverlay from './components/WechatOverlay.vue';
onMounted(() => {
RefreshToken()
})
const RefreshToken = async () => {
const token = localStorage.getItem("token")
const refreshAfter = localStorage.getItem("refreshAfter")
const currentTime = new Date().getTime();
// 1. 如果没有 token直接返回
if (!token) {
return;
}
// 2. 如果有 refreshAfter检查当前时间是否超过 refreshAfterrefreshAfter 是秒级,需要转换为毫秒级)
if (refreshAfter) {
const refreshAfterInMilliseconds = parseInt(refreshAfter) * 1000; // 转换为毫秒级
if (currentTime < refreshAfterInMilliseconds) {
return;
}
}
// 3. 如果没有 refreshAfter 或者时间超过 refreshAfter执行刷新 token 的请求
const { data, error } = await useApiFetch("/user/getToken")
.post()
.json();
if (data.value && !error.value) {
if (data.value !== 200) {
localStorage.setItem("token", data.value.data.accessToken);
localStorage.setItem("refreshAfter", data.value.data.refreshAfter);
}
}
}
</script>
<template>
<WechatOverlay />
<RouterView />
</template>
<style scoped></style>