diff --git a/src/api/request.js b/src/api/request.js
index 01da8a3..0e06f0a 100644
--- a/src/api/request.js
+++ b/src/api/request.js
@@ -5,7 +5,7 @@
 const request = axios.create({
   // 关键：不要设置baseURL，或者设置为空字符串
   // 这样请求会发送到当前域名（8080），然后被代理转发到8081
-  baseURL: process.env.VUE_APP_BASE_API || '',
+  baseURL: process.env.VUE_APP_BASE_API || '/api',
   timeout: 10000,
   headers: {
     // 'Content-Type': 'application/json'
@@ -15,27 +15,15 @@
 request.interceptors.request.use(
   config => {
     const token = localStorage.getItem('token')
-    console.log('📤 Token长度:', token ? token.length : 0)
-    console.log('📤 Token前50字符:', token ? token.substring(0, 50) + '...' : 'null')
-    
+    console.log('📤 添加 token 到请求头:', token)
     if (token) {
-      // 检查token是否过大
-      if (token.length > 8000) {
-        console.warn('⚠️ Token过大，长度:', token.length)
-        // 清除过大的token
-        localStorage.removeItem('token')
-        localStorage.removeItem('tokenInfo')
-        localStorage.removeItem('userInfo')
-        localStorage.removeItem('isLoggedIn')
-        ElMessage.error('登录信息过大，请重新登录')
-        router.push('/login')
-        return Promise.reject(new Error('Token过大'))
-      }
       config.headers.Authorization = `Bearer ${token}`
     }
     
     console.log('🚀 发送请求:', config.method?.toUpperCase(), config.url)
     console.log('📤 请求数据:', config.data)
+    console.log('🔍 VUE_APP_BASE_API:', process.env.VUE_APP_BASE_API)
+    console.log('🔍 VUE_APP_BACKEND:', process.env.VUE_APP_BACKEND)
     
     return config
   },
@@ -71,15 +59,6 @@
           ElMessage.error('API接口不存在')
           console.error('❌ 请求的URL:', error.config.url)
           break
-        case 431:
-          console.error('❌ 请求头太大 (431)，可能是Token过大')
-          localStorage.removeItem('token')
-          localStorage.removeItem('tokenInfo')
-          localStorage.removeItem('userInfo')
-          localStorage.removeItem('isLoggedIn')
-          ElMessage.error('登录信息过大，请重新登录')
-          router.push('/login')
-          break
         case 500:
           ElMessage.error('服务器内部错误')
           break
diff --git a/src/api/user.js b/src/api/user.js
index 32073b1..2cfb40c 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -7,18 +7,7 @@
    */
   getCurrentUser() {
     return request({
-      url: '/auth/status',
-      method: 'get'
-    })
-  },
-
-  /**
-   * 获取用户分享率和统计信息
-   * @returns {Promise<Object>} 分享率统计信息
-   */
-  getUserRatioInfo() {
-    return request({
-      url: '/torrent/ratio/info',
+      url: '/user/profile',
       method: 'get'
     })
   },
