94 lines
2.7 KiB
JavaScript
94 lines
2.7 KiB
JavaScript
|
|
// 验证码相关API
|
|||
|
|
// 注意:这里使用uni.request进行封装,与项目其他API保持一致
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取验证图片和token
|
|||
|
|
* @param {Object} data - 请求参数,必须包含clientUid和ts
|
|||
|
|
*/
|
|||
|
|
export function reqGet(data) {
|
|||
|
|
// 确保data对象存在
|
|||
|
|
const requestData = { ...data };
|
|||
|
|
|
|||
|
|
// 如果没有提供clientUid,生成一个
|
|||
|
|
if (!requestData.clientUid) {
|
|||
|
|
requestData.clientUid = 'slider-' + Date.now() + '-' + Math.random().toString(36).substring(2, 15);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 如果没有提供ts,使用当前时间戳
|
|||
|
|
if (!requestData.ts) {
|
|||
|
|
requestData.ts = Date.now();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Promise((resolve, reject) => {
|
|||
|
|
uni.request({
|
|||
|
|
url: 'http://10.160.0.5:8907/captcha/get',
|
|||
|
|
method: 'POST',
|
|||
|
|
data: requestData,
|
|||
|
|
header: {
|
|||
|
|
'Content-Type': 'application/json;charset=utf-8',
|
|||
|
|
isToken: false
|
|||
|
|
},
|
|||
|
|
success: (res) => {
|
|||
|
|
// 检查响应是否有效
|
|||
|
|
if (res.statusCode === 200 && res.data) {
|
|||
|
|
resolve(res.data);
|
|||
|
|
} else {
|
|||
|
|
reject(new Error('获取验证码图片失败:' + (res.statusCode || '未知错误')));
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
fail: (error) => {
|
|||
|
|
console.error('验证码API请求失败:', error);
|
|||
|
|
reject(new Error('网络请求失败,请检查网络连接'));
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 滑动或点选验证
|
|||
|
|
* @param {Object} data - 验证参数,必须包含clientUid、ts和token
|
|||
|
|
*/
|
|||
|
|
export function reqCheck(data) {
|
|||
|
|
// 确保data对象存在
|
|||
|
|
const requestData = { ...data };
|
|||
|
|
|
|||
|
|
// 如果没有提供ts,使用当前时间戳
|
|||
|
|
if (!requestData.ts) {
|
|||
|
|
requestData.ts = Date.now();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 验证必要参数
|
|||
|
|
if (!requestData.clientUid) {
|
|||
|
|
return Promise.reject(new Error('缺少必要参数:clientUid'));
|
|||
|
|
}
|
|||
|
|
if (!requestData.token) {
|
|||
|
|
return Promise.reject(new Error('缺少必要参数:token'));
|
|||
|
|
}
|
|||
|
|
if (!requestData.pointJson) {
|
|||
|
|
return Promise.reject(new Error('缺少必要参数:pointJson'));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return new Promise((resolve, reject) => {
|
|||
|
|
uni.request({
|
|||
|
|
url: 'http://10.160.0.5:8907/captcha/check',
|
|||
|
|
method: 'POST',
|
|||
|
|
data: requestData,
|
|||
|
|
header: {
|
|||
|
|
'Content-Type': 'application/json;charset=utf-8',
|
|||
|
|
isToken: false
|
|||
|
|
},
|
|||
|
|
success: (res) => {
|
|||
|
|
// 检查响应是否有效
|
|||
|
|
if (res.statusCode === 200 && res.data) {
|
|||
|
|
resolve(res.data);
|
|||
|
|
} else {
|
|||
|
|
reject(new Error('验证码验证失败:' + (res.statusCode || '未知错误')));
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
fail: (error) => {
|
|||
|
|
console.error('验证码验证请求失败:', error);
|
|||
|
|
reject(new Error('网络请求失败,请检查网络连接'));
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
}
|