151 lines
2.8 KiB
JavaScript
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 || "退出登录失败",
|
|
};
|
|
}
|
|
}
|
|
|