diff --git a/src/api/auth.js b/src/api/auth.js
new file mode 100644
index 0000000..81a7d9b
--- /dev/null
+++ b/src/api/auth.js
@@ -0,0 +1,45 @@
+import request from "@/utils/request";
+
+// 用户认证相关API
+export const userLogin = (params) => {
+  return request.post("/user/login", {...params});
+};
+
+export const adminLogin = (params) => {
+  return request.post("/admin/login", {...params});
+};
+
+export const registerUser = (params) => {
+  return request.post("/user/register", {...params});
+};
+
+export const updateUsername = (params) => {
+  return request.post("/user/update/username", {...params});
+};
+
+export const updatePassword = (params) => {
+  return request.post("/user/update/password", {...params});
+};
+
+export const updateEmail = (params) => {
+  return request.post("/user/update/email", {...params});
+};
+
+export const getUserList = (params) => {
+  return request.get('/user/list', {params});
+};
+
+export const deleteUser = (params) => {
+  return request.delete("/user/delete", {params});
+};
+
+export const logoutUser = () => {
+  // 清除本地存储
+  localStorage.removeItem("token");
+  localStorage.removeItem("user");
+
+  return Promise.resolve({
+    success: true,
+    message: "注销成功",
+  });
+}; 
\ No newline at end of file
diff --git a/src/api/forum.js b/src/api/forum.js
new file mode 100644
index 0000000..61518be
--- /dev/null
+++ b/src/api/forum.js
@@ -0,0 +1,31 @@
+import request from "@/utils/request";
+
+// 帖子相关API
+export const createPost = (params) => {
+  return request.post("/posts/create", {...params});
+};
+
+export const getPosts = (params) => {
+  return request.get("/posts/list", {params});
+};
+
+export const deletePost = (username, pid) => {
+  return request.delete("/posts/delete", {
+    data: { username, pid },
+  });
+};
+
+// 评论相关API
+export const addComment = (params) => {
+  return request.post("/comment/add", {...params});
+};
+
+export const getComments = (params) => {
+  return request.get('/comment/get', {params});
+};
+
+export const deleteComment = (username, commentId) => {
+  return request.delete("/comment/delete", {
+    data: { username, commentId },
+  });
+}; 
\ No newline at end of file
diff --git a/src/api/user.js b/src/api/user.js
new file mode 100644
index 0000000..7ac2d72
--- /dev/null
+++ b/src/api/user.js
@@ -0,0 +1,35 @@
+import request from "@/utils/request";
+
+// 用户资料相关API
+export const getUserProfile = (username) => {
+  return request.get(`/user/profile/${username}`);
+};
+
+export const updateUserProfile = (userData) => {
+  return request.put("/user/profile", userData);
+};
+
+export const uploadAvatar = (formData) => {
+  return request.post("/user/avatar", formData, {
+    headers: {
+      'Content-Type': 'multipart/form-data',
+    },
+  });
+};
+
+// PT站统计信息API
+export const getUserStats = (username) => {
+  return request.get(`/user/stats/${username}`);
+};
+
+export const getUserTorrents = (username, type = 'all') => {
+  return request.get(`/user/torrents/${username}`, {
+    params: { type } // type: 'seeding', 'leeching', 'completed', 'all'
+  });
+};
+
+export const getUserHistory = (username, page = 1, limit = 10) => {
+  return request.get(`/user/history/${username}`, {
+    params: { page, limit }
+  });
+}; 
\ No newline at end of file
