diff --git a/src/router/index.ts b/src/router/index.ts index a2e4a9b..779960a 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -242,5 +242,19 @@ const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes, }); - +// ====== 添加全局前置守卫 ====== +router.beforeEach((to, from, next) => { + const token = localStorage.getItem("token"); // 或从 pinia/vuex 获取 + const isLoginPage = to.path === "/login"; + if (!token && !isLoginPage) { + // 没有 token 且不是去登录页 → 跳转登录 + next({ path: "/login" }); + } else if (token && isLoginPage) { + // 已登录却访问登录页 → 跳转首页(可选) + next({ path: "/layout/home" }); + } else { + // 正常访问 + next(); + } +}); export default router; diff --git a/src/utils/index.ts b/src/utils/index.ts index 4ab6208..c291126 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -32,6 +32,7 @@ request.interceptors.request.use( // 响应拦截器(统一处理错误、code 等) request.interceptors.response.use( (response) => { + console.log('响应数据:', response); // 假设后端返回格式为 { code: 200, data: ..., message: '' } const { code, data, message } = response.data; console.log('请求成功:', data); @@ -44,8 +45,8 @@ request.interceptors.response.use( }, (error) => { // 网络错误 or 超时等 - console.error('请求异常:', error.message); - return Promise.reject(error); + console.error('请求异常:', error.response.data); + return Promise.reject(error.response.data); } ); diff --git a/src/views/login/component/account.vue b/src/views/login/component/account.vue index a87a494..35d5cc3 100644 --- a/src/views/login/component/account.vue +++ b/src/views/login/component/account.vue @@ -4,13 +4,10 @@ - - + -