diff --git a/web-vue/src/router/index.js b/web-vue/src/router/index.js index dadef08..3253342 100644 --- a/web-vue/src/router/index.js +++ b/web-vue/src/router/index.js @@ -44,13 +44,29 @@ const router = createRouter({ routes }) -router.beforeEach((to, from, next) => { +router.beforeEach(async (to, from, next) => { const token = localStorage.getItem('token') if (to.meta.requiresAuth && !token) { next('/login') } else if (to.path === '/login' && token) { next('/desktop') + } else if (to.meta.requiresAuth && token) { + // 有 token 且要进需认证页面,先验证后端是否可用 + try { + await fetch('/api/files/test') + next() + } catch { + // 后端不可用,清除登录状态跳转登录页 + localStorage.removeItem('token') + localStorage.removeItem('username') + localStorage.removeItem('userId') + localStorage.removeItem('nickname') + localStorage.removeItem('avatar') + localStorage.removeItem('storageUsed') + localStorage.removeItem('storageLimit') + window.location.href = '/login' + } } else { next() }