blob: dd40a80622de1fd39666a823c652d19fd26dc646 [file] [log] [blame]
ybtda5978b2025-05-31 15:58:05 +08001// src/features/auth/services/authApi.js
2import request from "../../../services/request";
3import { message } from "antd";
4
5// 使用API前缀
6const API_PREFIX = "/user";
7const ADMIN_PREFIX = "/admin";
8
9// 导出API函数
10export const loginUser = (credentials) => {
11 return request.post(`${API_PREFIX}/login`, credentials).then((response) => {
12 if (response.data && response.data.success) {
13 // 保存token和用户信息到localStorage
14 localStorage.setItem("token", response.data.data.token);
15 localStorage.setItem("user", JSON.stringify(response.data.data.user));
16 return response.data;
17 } else {
18 return Promise.reject(new Error(response.data.message || "登录失败"));
19 }
20 });
21};
22
23export const adminLogin = (credentials) => {
24 return request.post(`${ADMIN_PREFIX}/login`, credentials).then((response) => {
25 if (response.data && response.data.success) {
26 // 保存token和用户信息到localStorage
27 localStorage.setItem("token", response.data.data.token);
28 localStorage.setItem("user", JSON.stringify(response.data.data.user));
29 return response.data;
30 } else {
31 return Promise.reject(new Error(response.data.message || "管理员登录失败"));
32 }
33 });
34};
35
36export const registerUser = (userData) => {
37 return request.post(`${API_PREFIX}/register`, userData).then((response) => {
38 if (response.data && response.data.success) {
39 return response.data;
40 } else {
41 return Promise.reject(new Error(response.data.message || "注册失败"));
42 }
43 });
44};
45
46export const updateUsername = (username, newUsername) => {
47 const token = localStorage.getItem("token");
48 return request
49 .post(`${API_PREFIX}/update/username`,
50 { username, newUsername },
51 { headers: { token } })
52 .then((response) => {
53 if (response.data && response.data.success) {
54 // 更新本地存储的用户信息
55 const user = JSON.parse(localStorage.getItem("user") || "{}");
56 user.username = newUsername;
57 localStorage.setItem("user", JSON.stringify(user));
58 return response.data;
59 } else {
60 return Promise.reject(
61 new Error(response.data.message || "修改用户名失败")
62 );
63 }
64 });
65};
66
67export const updatePassword = (username, newPassword) => {
68 const token = localStorage.getItem("token");
69 return request
70 .post(`${API_PREFIX}/update/password`,
71 { username, newPassword },
72 { headers: { token } })
73 .then((response) => {
74 if (response.data && response.data.success) {
75 return response.data;
76 } else {
77 return Promise.reject(
78 new Error(response.data.message || "修改密码失败")
79 );
80 }
81 });
82};
83
84export const updateEmail = (username, newEmail) => {
85 const token = localStorage.getItem("token");
86 return request
87 .post(`${API_PREFIX}/update/email`,
88 { username, newEmail },
89 { headers: { token } })
90 .then((response) => {
91 if (response.data && response.data.success) {
92 // 更新本地存储的用户信息
93 const user = JSON.parse(localStorage.getItem("user") || "{}");
94 user.email = newEmail;
95 localStorage.setItem("user", JSON.stringify(user));
96 return response.data;
97 } else {
98 return Promise.reject(
99 new Error(response.data.message || "修改邮箱失败")
100 );
101 }
102 });
103};
104
105export const getUserInfo = (username) => {
106 const token = localStorage.getItem("token");
107 return request
108 .get(`${API_PREFIX}/get/info?username=${username}`,
109 { headers: { token } })
110 .then((response) => {
111 if (response.data && response.data.success) {
112 return response.data;
113 } else {
114 return Promise.reject(
115 new Error(response.data.message || "获取用户信息失败")
116 );
117 }
118 });
119};
120
121export const getUserList = (username) => {
122 const token = localStorage.getItem("token");
123 return request
124 .get(`/user/list?username=${username}`,
125 { headers: { token } })
126 .then((response) => {
127 if (response.data && response.data.success) {
128 return response.data;
129 } else {
130 return Promise.reject(
131 new Error(response.data.message || "获取用户列表失败")
132 );
133 }
134 });
135};
136
137export const deleteUser = (username, targetUsername) => {
138 const token = localStorage.getItem("token");
139 return request
140 .delete(`/user/delete`,
141 {
142 headers: { token },
143 data: { username, targetUsername }
144 })
145 .then((response) => {
146 if (response.data && response.data.success) {
147 return response.data;
148 } else {
149 return Promise.reject(
150 new Error(response.data.message || "删除用户失败")
151 );
152 }
153 });
154};
155
156export const logoutUser = () => {
157 // 清除本地存储
158 localStorage.removeItem("token");
159 localStorage.removeItem("user");
160
161 return Promise.resolve({
162 success: true,
163 message: "注销成功"
164 });
165};