diff --git a/src/api/auth.js b/src/api/auth.js
new file mode 100644
index 0000000..a3c672a
--- /dev/null
+++ b/src/api/auth.js
@@ -0,0 +1,62 @@
+import request from './request'
+
+export const authApi = {
+  /**
+   * 用户登录
+   */
+  async login(loginData) {
+    console.log('📤 发送登录数据:', loginData)
+    
+    const requestData = {
+      user: loginData.user,
+      password: loginData.password
+    }
+    
+    return request({
+      url: '/api/auth/login',  // 需要 /api 前缀
+      method: 'post',
+      data: requestData
+    })
+  },
+
+  /**
+   * 用户注册
+   */
+  async register(registerData) {
+    console.log('📤 发送注册数据:', registerData)
+    
+    const requestData = {
+      username: registerData.username,
+      email: registerData.email,
+      password: registerData.password
+    }
+    
+    return request({
+      url: '/api/auth/register',  // 需要 /api 前缀
+      method: 'post',
+      data: requestData
+    })
+  },
+
+  /**
+   * 用户登出
+   */
+  logout() {
+    return request({
+      url: '/api/auth/logout',  // 需要 /api 前缀
+      method: 'post'
+    })
+  },
+
+  /**
+   * 获取登录状态
+   */
+  getStatus() {
+    return request({
+      url: '/api/auth/status',  // 需要 /api 前缀
+      method: 'get'
+    })
+  }
+}
+
+export default authApi
\ No newline at end of file
