diff --git a/src/utils/AuthManager.ts b/src/utils/AuthManager.ts index 2fc7326..3613f76 100644 --- a/src/utils/AuthManager.ts +++ b/src/utils/AuthManager.ts @@ -210,15 +210,22 @@ export class AuthManager { await client.testAdminAuth(); return true; } catch (error) { - // 如果是401错误,说明token有效但不是管理员,不需要清除token - // 如果是其他错误,可能token无效,清除token + // 只有在token完全无效的情况下才清除token + // 401错误表示token有效但权限不足,不应清除token if ( error && typeof error === "object" && - "status" in error && - error.status !== 401 + "status" in error ) { + // 如果是403 (Forbidden) 或401 (Unauthorized),说明token有效但权限不足 + if (error.status === 401 || error.status === 403) { + return false; + } + // 其他状态码可能表示token无效,清除token AuthManager.clearToken(); + } else { + // 网络错误等,不清除token + console.error('管理员权限验证失败:', error); } return false; } diff --git a/src/views/User/Index.vue b/src/views/User/Index.vue index e79d9cb..e979e69 100644 --- a/src/views/User/Index.vue +++ b/src/views/User/Index.vue @@ -18,6 +18,10 @@