2.2的部分代码新增实现

This commit is contained in:
2026-07-28 18:46:08 +08:00
parent 74a054d90c
commit 509de72d10
3 changed files with 302 additions and 144 deletions
+22 -4
View File
@@ -28,6 +28,14 @@ async function apiFetch(endpoint, options = {}) {
...options,
headers: { ...headers, ...(options.headers || {}) },
});
// ---- 统一处理 401 认证失效 ----
if (res.status === 401) {
clearAuthState();
window.dispatchEvent(new CustomEvent("auth:expired"));
return { code: 401, msg: "认证已过期,请重新登录" };
}
return res.json();
}
@@ -286,8 +294,16 @@ const app = createApp({
let logTimer = null;
let logFetching = false;
// ---- 认证过期处理 ----
const handleAuthExpired = () => {
doLogout();
};
// ---- 初始化 ----
onMounted(() => {
// 监听认证过期事件
window.addEventListener("auth:expired", handleAuthExpired);
const saved = loadAuthState();
if (saved.valid) {
token.value = saved.token;
@@ -351,6 +367,11 @@ const app = createApp({
logFetching = true;
try {
const result = await fetchLogsApi();
// ---- 如果 API 返回 401,停止轮询(事件已触发登出) ----
if (result.code === 401) {
logFetching = false;
return;
}
logLines.value = result.lines;
logTotal.value = result.total;
logError.value = result.error;
@@ -641,7 +662,6 @@ const app = createApp({
);
const showDefaultTip = computed(() => {
// 如果 serverAddr 还是默认值,或者为空,显示警告
const addr = globalConfig.serverAddr;
return !addr || addr === "frp.example.com" || addr.trim() === "";
});
@@ -692,9 +712,8 @@ const app = createApp({
passwordChangeSuccess,
changePassword,
showDefaultTip,
showDefaultTip,
// 日志相关
logLines,
logTotal,
logError,
@@ -703,7 +722,6 @@ const app = createApp({
refreshLogs,
scrollLogToBottom,
// Token 显示切换
showToken,
};
},