blob: dd40a80622de1fd39666a823c652d19fd26dc646 [file] [log] [blame]
// src/features/auth/services/authApi.js
import request from "../../../services/request";
import { message } from "antd";
// 使用API前缀
const API_PREFIX = "/user";
const ADMIN_PREFIX = "/admin";
// 导出API函数
export const loginUser = (credentials) => {
return request.post(`${API_PREFIX}/login`, credentials).then((response) => {
if (response.data && response.data.success) {
// 保存token和用户信息到localStorage
localStorage.setItem("token", response.data.data.token);
localStorage.setItem("user", JSON.stringify(response.data.data.user));
return response.data;
} else {
return Promise.reject(new Error(response.data.message || "登录失败"));
}
});
};
export const adminLogin = (credentials) => {
return request.post(`${ADMIN_PREFIX}/login`, credentials).then((response) => {
if (response.data && response.data.success) {
// 保存token和用户信息到localStorage
localStorage.setItem("token", response.data.data.token);
localStorage.setItem("user", JSON.stringify(response.data.data.user));
return response.data;
} else {
return Promise.reject(new Error(response.data.message || "管理员登录失败"));
}
});
};
export const registerUser = (userData) => {
return request.post(`${API_PREFIX}/register`, userData).then((response) => {
if (response.data && response.data.success) {
return response.data;
} else {
return Promise.reject(new Error(response.data.message || "注册失败"));
}
});
};
export const updateUsername = (username, newUsername) => {
const token = localStorage.getItem("token");
return request
.post(`${API_PREFIX}/update/username`,
{ username, newUsername },
{ headers: { token } })
.then((response) => {
if (response.data && response.data.success) {
// 更新本地存储的用户信息
const user = JSON.parse(localStorage.getItem("user") || "{}");
user.username = newUsername;
localStorage.setItem("user", JSON.stringify(user));
return response.data;
} else {
return Promise.reject(
new Error(response.data.message || "修改用户名失败")
);
}
});
};
export const updatePassword = (username, newPassword) => {
const token = localStorage.getItem("token");
return request
.post(`${API_PREFIX}/update/password`,
{ username, newPassword },
{ headers: { token } })
.then((response) => {
if (response.data && response.data.success) {
return response.data;
} else {
return Promise.reject(
new Error(response.data.message || "修改密码失败")
);
}
});
};
export const updateEmail = (username, newEmail) => {
const token = localStorage.getItem("token");
return request
.post(`${API_PREFIX}/update/email`,
{ username, newEmail },
{ headers: { token } })
.then((response) => {
if (response.data && response.data.success) {
// 更新本地存储的用户信息
const user = JSON.parse(localStorage.getItem("user") || "{}");
user.email = newEmail;
localStorage.setItem("user", JSON.stringify(user));
return response.data;
} else {
return Promise.reject(
new Error(response.data.message || "修改邮箱失败")
);
}
});
};
export const getUserInfo = (username) => {
const token = localStorage.getItem("token");
return request
.get(`${API_PREFIX}/get/info?username=${username}`,
{ headers: { token } })
.then((response) => {
if (response.data && response.data.success) {
return response.data;
} else {
return Promise.reject(
new Error(response.data.message || "获取用户信息失败")
);
}
});
};
export const getUserList = (username) => {
const token = localStorage.getItem("token");
return request
.get(`/user/list?username=${username}`,
{ headers: { token } })
.then((response) => {
if (response.data && response.data.success) {
return response.data;
} else {
return Promise.reject(
new Error(response.data.message || "获取用户列表失败")
);
}
});
};
export const deleteUser = (username, targetUsername) => {
const token = localStorage.getItem("token");
return request
.delete(`/user/delete`,
{
headers: { token },
data: { username, targetUsername }
})
.then((response) => {
if (response.data && response.data.success) {
return response.data;
} else {
return Promise.reject(
new Error(response.data.message || "删除用户失败")
);
}
});
};
export const logoutUser = () => {
// 清除本地存储
localStorage.removeItem("token");
localStorage.removeItem("user");
return Promise.resolve({
success: true,
message: "注销成功"
});
};