2026-07-27 11:26:39 +08:00

151 lines
2.8 KiB
JavaScript

/**
* JWT 认证相关 API
* 处理小程序授权登录和 token 管理
*/
// #ifdef MP-ALIPAY
const baseUrl = process.env.API_BASE_URL;
// #endif
// #ifdef H5
const baseUrl = "http://localhost:8080";
// #endif
/**
* 小程序授权登录
* @param {Object} params - 登录参数 { authCode, platform, corpId }
* @returns {Promise}
*/
export async function miniAppLogin({ authCode, platform = 'alipay', corpId }) {
try {
const res = await uni.request({
url: `${baseUrl}/auth/miniapp/login`,
method: "POST",
header: {
"Content-Type": "application/json",
},
data: {
authCode,
platform,
corpId,
},
});
if (res && res.data) {
return res.data;
}
return {
success: false,
message: "登录失败,请稍后再试",
};
} catch (error) {
console.error("小程序登录异常:", error);
return {
success: false,
message: error.message || "登录失败,请稍后再试",
};
}
}
/**
* 刷新 Token
* @param {String} refreshToken - 刷新令牌
* @returns {Promise}
*/
export async function refreshToken(refreshToken) {
try {
const res = await uni.request({
url: `${baseUrl}/auth/refresh`,
method: "POST",
header: {
"Content-Type": "application/json",
},
data: {
refreshToken,
},
});
if (res && res.data) {
return res.data;
}
return {
success: false,
message: "Token 刷新失败",
};
} catch (error) {
console.error("Token 刷新异常:", error);
return {
success: false,
message: error.message || "Token 刷新失败",
};
}
}
/**
* 获取当前用户信息
* @param {String} accessToken - 访问令牌
* @returns {Promise}
*/
export async function getCurrentUser(accessToken) {
try {
const res = await uni.request({
url: `${baseUrl}/auth/current`,
method: "GET",
header: {
"Content-Type": "application/json",
Authorization: `Bearer ${accessToken}`,
},
});
if (res && res.data) {
return res.data;
}
return {
success: false,
message: "获取用户信息失败",
};
} catch (error) {
console.error("获取用户信息异常:", error);
return {
success: false,
message: error.message || "获取用户信息失败",
};
}
}
/**
* 退出登录
* @param {String} accessToken - 访问令牌
* @returns {Promise}
*/
export async function logout(accessToken) {
try {
const res = await uni.request({
url: `${baseUrl}/auth/logout`,
method: "POST",
header: {
"Content-Type": "application/json",
Authorization: `Bearer ${accessToken}`,
},
});
if (res && res.data) {
return res.data;
}
return {
success: false,
message: "退出登录失败",
};
} catch (error) {
console.error("退出登录异常:", error);
return {
success: false,
message: error.message || "退出登录失败",
};
}
}