This commit is contained in:
“xHuPo” 2025-05-23 19:09:06 +08:00
parent bcd986e3f7
commit 44500afd3f
2 changed files with 41 additions and 15 deletions

View file

@ -14,10 +14,23 @@ import request from '../utils/request';
* @returns {Promise} - 返回创建结果 * @returns {Promise} - 返回创建结果
*/ */
export const createOTP = (params) => { export const createOTP = (params) => {
if (!params || !params.secret) {
return Promise.reject(new Error('缺少必要的参数: secret'));
}
return request({ return request({
url: '/otp', url: '/otp',
method: 'POST', method: 'POST',
data: params data: {
name: params.name || '',
issuer: params.issuer || '',
secret: params.secret,
algorithm: params.algorithm || 'SHA1',
digits: params.digits || 6,
period: params.period || 30
}
}).catch(err => {
console.error('创建OTP失败:', err);
throw new Error('创建OTP失败: ' + (err.message || '未知错误'));
}); });
}; };
@ -29,6 +42,9 @@ export const getOTPList = () => {
return request({ return request({
url: '/otp', url: '/otp',
method: 'GET' method: 'GET'
}).catch(err => {
console.error('获取OTP列表失败:', err);
throw new Error('获取OTP列表失败: ' + (err.message || '未知错误'));
}); });
}; };
@ -38,9 +54,15 @@ export const getOTPList = () => {
* @returns {Promise} - 返回当前验证码 * @returns {Promise} - 返回当前验证码
*/ */
export const getOTPCode = (id) => { export const getOTPCode = (id) => {
if (!id) {
return Promise.reject(new Error('缺少必要的参数: id'));
}
return request({ return request({
url: `/otp/${id}/code`, url: `/otp/${id}/code`,
method: 'GET' method: 'GET'
}).catch(err => {
console.error('获取OTP代码失败:', err);
throw new Error('获取OTP代码失败: ' + (err.message || '未知错误'));
}); });
}; };
@ -51,12 +73,16 @@ export const getOTPCode = (id) => {
* @returns {Promise} - 返回验证结果 * @returns {Promise} - 返回验证结果
*/ */
export const verifyOTP = (id, code) => { export const verifyOTP = (id, code) => {
if (!id || !code) {
return Promise.reject(new Error('缺少必要的参数: id或code'));
}
return request({ return request({
url: `/otp/${id}/verify`, url: `/otp/${id}/verify`,
method: 'POST', method: 'POST',
data: { data: { code }
code: code }).catch(err => {
} console.error('验证OTP失败:', err);
throw new Error('验证OTP失败: ' + (err.message || '未知错误'));
}); });
}; };
@ -67,10 +93,16 @@ export const verifyOTP = (id, code) => {
* @returns {Promise} - 返回更新结果 * @returns {Promise} - 返回更新结果
*/ */
export const updateOTP = (id, params) => { export const updateOTP = (id, params) => {
if (!id || !params) {
return Promise.reject(new Error('缺少必要的参数: id或params'));
}
return request({ return request({
url: `/otp/${id}`, url: `/otp/${id}`,
method: 'PUT', method: 'PUT',
data: params data: params
}).catch(err => {
console.error('更新OTP失败:', err);
throw new Error('更新OTP失败: ' + (err.message || '未知错误'));
}); });
}; };

View file

@ -24,17 +24,11 @@ const request = (options) => {
success: (res) => { success: (res) => {
// 处理业务错误 // 处理业务错误
if (res.data.code !== 0) { if (res.data.code !== 0) {
// token过期尝试刷新 // token过期直接清除并跳转登录
if (res.statusCode === 401) { if (res.statusCode === 401) {
refreshToken().then(() => {
// 刷新token后重试请求
request(options).then(resolve).catch(reject);
}).catch((err) => {
// 刷新失败,需要重新登录
wx.removeStorageSync('token'); wx.removeStorageSync('token');
wx.removeStorageSync('openid'); wx.removeStorageSync('openid');
reject(err); reject(new Error('登录已过期,请重新登录'));
});
return; return;
} }
reject(new Error(res.data.message || '请求失败')); reject(new Error(res.data.message || '请求失败'));