This commit is contained in:
yziiy
2026-01-16 10:12:17 +08:00
parent 6d28ef6aa8
commit 87af6d000f

View File

@@ -13,12 +13,12 @@ import { stringify } from "qs";
import NProgress from "../progress"; import NProgress from "../progress";
import { getToken, formatToken } from "@/utils/auth"; import { getToken, formatToken } from "@/utils/auth";
import { useUserStoreHook } from "@/store/modules/user"; import { useUserStoreHook } from "@/store/modules/user";
import { baseUrlApi } from './httpConfig.ts' import { baseUrlApi } from "./httpConfig.ts";
import { message } from "../message"; import { message } from "../message";
// 相关配置请参考www.axios-js.com/zh-cn/docs/#axios-request-config-1 // 相关配置请参考www.axios-js.com/zh-cn/docs/#axios-request-config-1
const defaultConfig: AxiosRequestConfig = { const defaultConfig: AxiosRequestConfig = {
// 请求超时时间 // 请求超时时间
timeout: 10000, timeout: 30000,
headers: { headers: {
Accept: "application/json, text/plain, */*", Accept: "application/json, text/plain, */*",
"Content-Type": "multipart/form-data", "Content-Type": "multipart/form-data",
@@ -78,37 +78,37 @@ class PureHttp {
return whiteList.some(url => config.url.endsWith(url)) return whiteList.some(url => config.url.endsWith(url))
? config ? config
: new Promise(resolve => { : new Promise(resolve => {
const data = getToken(); const data = getToken();
if (data) { if (data) {
const now = new Date().getTime(); const now = new Date().getTime();
const expired = parseInt(data.expires) - now <= 0; const expired = parseInt(data.expires) - now <= 0;
if (expired) { if (expired) {
if (!PureHttp.isRefreshing) { if (!PureHttp.isRefreshing) {
PureHttp.isRefreshing = true; PureHttp.isRefreshing = true;
// token过期刷新 // token过期刷新
useUserStoreHook() useUserStoreHook()
.handRefreshToken({ refreshToken: data.refreshToken }) .handRefreshToken({ refreshToken: data.refreshToken })
.then(res => { .then(res => {
const token = res.data.accessToken; const token = res.data.accessToken;
config.headers["Authorization"] = formatToken(token); config.headers["Authorization"] = formatToken(token);
PureHttp.requests.forEach(cb => cb(token)); PureHttp.requests.forEach(cb => cb(token));
PureHttp.requests = []; PureHttp.requests = [];
}) })
.finally(() => { .finally(() => {
PureHttp.isRefreshing = false; PureHttp.isRefreshing = false;
}); });
}
resolve(PureHttp.retryOriginalRequest(config));
} else {
config.headers["Authorization"] = formatToken(
data.accessToken
);
resolve(config);
} }
resolve(PureHttp.retryOriginalRequest(config));
} else { } else {
config.headers["Authorization"] = formatToken(
data.accessToken
);
resolve(config); resolve(config);
} }
} else { });
resolve(config);
}
});
}, },
error => { error => {
return Promise.reject(error); return Promise.reject(error);
@@ -163,12 +163,12 @@ class PureHttp {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
PureHttp.axiosInstance PureHttp.axiosInstance
.request(config) .request(config)
.then((response) => { .then(response => {
// console.log(response) // console.log(response)
if ([301, 302].includes(response.code)) { if ([301, 302].includes(response.code)) {
message(response.msg, 'error') message(response.msg, "error");
useUserStoreHook().logOut(); useUserStoreHook().logOut();
return return;
} }
resolve(response); resolve(response);
}) })