diff --git a/web-vue/src/router/index.js b/web-vue/src/router/index.js index 3253342..1925754 100644 --- a/web-vue/src/router/index.js +++ b/web-vue/src/router/index.js @@ -52,9 +52,13 @@ router.beforeEach(async (to, from, next) => { } else if (to.path === '/login' && token) { next('/desktop') } else if (to.meta.requiresAuth && token) { - // 有 token 且要进需认证页面,先验证后端是否可用 + // 有 token 且要进需认证页面,先验证后端是否可用(5秒超时) try { - await fetch('/api/files/test') + const controller = new AbortController() + const timeoutId = setTimeout(() => controller.abort(), 5000) + const res = await fetch('/api/files/test', { signal: controller.signal }) + clearTimeout(timeoutId) + if (!res.ok) throw new Error('backend error') next() } catch { // 后端不可用,清除登录状态跳转登录页