修改无感刷新
This commit is contained in:
parent
400a40cb9c
commit
8eb0daa25a
|
|
@ -4,17 +4,27 @@ import { ElMessage } from 'element-plus';
|
||||||
//const baseURL = "https://gep.ljsea.xyz/";
|
//const baseURL = "https://gep.ljsea.xyz/";
|
||||||
//const baseURL= "http://localhost:8083";
|
//const baseURL= "http://localhost:8083";
|
||||||
//const baseURL="https://pm.ljsea.top";
|
//const baseURL="https://pm.ljsea.top";
|
||||||
const baseURL2 = "https://gep.ljsea.top/";
|
const baseURL = "https://gep.ljsea.top/";
|
||||||
|
|
||||||
|
|
||||||
let isRefreshing = false;
|
let isRefreshing = false;
|
||||||
let requests = [];
|
let requests = [];
|
||||||
|
|
||||||
const request = axios.create({
|
const request = axios.create({
|
||||||
baseURL: baseURL2,
|
baseURL: baseURL,
|
||||||
});
|
});
|
||||||
|
|
||||||
// 请求拦截器 - 添加token
|
// 请求拦截器 - 添加token
|
||||||
request.interceptors.request.use();
|
request.interceptors.request.use(
|
||||||
|
config => {
|
||||||
|
const token = localStorage.getItem("token");
|
||||||
|
if (token) {
|
||||||
|
config.headers.Authorization = `Bearer ${token}`;
|
||||||
|
config.headers.token = token;
|
||||||
|
}
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
request.interceptors.response.use(
|
request.interceptors.response.use(
|
||||||
|
|
@ -27,7 +37,6 @@ request.interceptors.response.use(
|
||||||
// 检测到token过期
|
// 检测到token过期
|
||||||
if (isRefreshing == false) {
|
if (isRefreshing == false) {
|
||||||
isRefreshing = true;
|
isRefreshing = true;
|
||||||
|
|
||||||
// 这里需要替换为实际的refresh token请求
|
// 这里需要替换为实际的refresh token请求
|
||||||
return axios.post('https://uc.ljsea.top/user/refresh_token', {
|
return axios.post('https://uc.ljsea.top/user/refresh_token', {
|
||||||
refresh_token: localStorage.getItem("refresh_token")
|
refresh_token: localStorage.getItem("refresh_token")
|
||||||
|
|
@ -38,6 +47,7 @@ request.interceptors.response.use(
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
const token = res.data["data"]["access_token"];
|
const token = res.data["data"]["access_token"];
|
||||||
localStorage.setItem("token", token);
|
localStorage.setItem("token", token);
|
||||||
|
//alert("token: " + token);
|
||||||
|
|
||||||
// 重试所有挂起的请求
|
// 重试所有挂起的请求
|
||||||
requests.forEach(cb => cb(token));
|
requests.forEach(cb => cb(token));
|
||||||
|
|
@ -58,7 +68,9 @@ request.interceptors.response.use(
|
||||||
// 正在刷新token,将请求放入队列
|
// 正在刷新token,将请求放入队列
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
requests.push(token => {
|
requests.push(token => {
|
||||||
|
//alert("new token: " + token);
|
||||||
result.config.headers.Authorization = `Bearer ${token}`;
|
result.config.headers.Authorization = `Bearer ${token}`;
|
||||||
|
result.config.headers.token = token;
|
||||||
resolve(request(result.config));
|
resolve(request(result.config));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -75,49 +87,6 @@ request.interceptors.response.use(
|
||||||
} else {
|
} else {
|
||||||
return result.data;
|
return result.data;
|
||||||
}
|
}
|
||||||
},
|
|
||||||
error => {
|
|
||||||
if (error.response && error.response.status === 401 && !isRefreshing) {
|
|
||||||
// 处理401未授权错误
|
|
||||||
const originalRequest = error.config;
|
|
||||||
if (!isRefreshing) {
|
|
||||||
isRefreshing = true;
|
|
||||||
|
|
||||||
return axios.post(baseURL+'user/refresh', {
|
|
||||||
refresh_token: localStorage.getItem("refresh_token")
|
|
||||||
},{
|
|
||||||
headers: {
|
|
||||||
'Authorization': `Bearer ${localStorage.getItem("refresh_token")}`
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
const { token, refresh_token } = res.data;
|
|
||||||
localStorage.setItem("token", token);
|
|
||||||
localStorage.setItem("refresh_token", refresh_token);
|
|
||||||
|
|
||||||
requests.forEach(cb => cb(token));
|
|
||||||
requests = [];
|
|
||||||
isRefreshing = false;
|
|
||||||
|
|
||||||
originalRequest.headers.Authorization = `Bearer ${token}`;
|
|
||||||
return request(originalRequest);
|
|
||||||
}).catch(err => {
|
|
||||||
ElMessage.error('登录已过期,请重新登录!');
|
|
||||||
localStorage.removeItem("token");
|
|
||||||
localStorage.removeItem("refresh_token");
|
|
||||||
router.push("/login");
|
|
||||||
return Promise.reject(err);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
requests.push(token => {
|
|
||||||
originalRequest.headers.Authorization = `Bearer ${token}`;
|
|
||||||
resolve(request(originalRequest));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ElMessage.error('请求失败,请稍后重试!');
|
|
||||||
return Promise.reject(error);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const baseURL = "https://tx.ljsea.top/";
|
||||||
//const baseURL="https://pm.ljsea.top";
|
//const baseURL="https://pm.ljsea.top";
|
||||||
//const baseURL = "https://gep.ljsea.xyz/";
|
//const baseURL = "https://gep.ljsea.xyz/";
|
||||||
|
|
||||||
|
|
||||||
let isRefreshing = false;
|
let isRefreshing = false;
|
||||||
let requests = [];
|
let requests = [];
|
||||||
|
|
||||||
|
|
@ -15,7 +16,16 @@ const request = axios.create({
|
||||||
});
|
});
|
||||||
|
|
||||||
// 请求拦截器 - 添加token
|
// 请求拦截器 - 添加token
|
||||||
request.interceptors.request.use();
|
request.interceptors.request.use(
|
||||||
|
config => {
|
||||||
|
const token = localStorage.getItem("token");
|
||||||
|
if (token) {
|
||||||
|
config.headers.Authorization = `Bearer ${token}`;
|
||||||
|
config.headers.token = token;
|
||||||
|
}
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
request.interceptors.response.use(
|
request.interceptors.response.use(
|
||||||
|
|
@ -28,7 +38,6 @@ request.interceptors.response.use(
|
||||||
// 检测到token过期
|
// 检测到token过期
|
||||||
if (isRefreshing == false) {
|
if (isRefreshing == false) {
|
||||||
isRefreshing = true;
|
isRefreshing = true;
|
||||||
|
|
||||||
// 这里需要替换为实际的refresh token请求
|
// 这里需要替换为实际的refresh token请求
|
||||||
return axios.post('https://uc.ljsea.top/user/refresh_token', {
|
return axios.post('https://uc.ljsea.top/user/refresh_token', {
|
||||||
refresh_token: localStorage.getItem("refresh_token")
|
refresh_token: localStorage.getItem("refresh_token")
|
||||||
|
|
@ -39,6 +48,7 @@ request.interceptors.response.use(
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
const token = res.data["data"]["access_token"];
|
const token = res.data["data"]["access_token"];
|
||||||
localStorage.setItem("token", token);
|
localStorage.setItem("token", token);
|
||||||
|
//alert("token: " + token);
|
||||||
|
|
||||||
// 重试所有挂起的请求
|
// 重试所有挂起的请求
|
||||||
requests.forEach(cb => cb(token));
|
requests.forEach(cb => cb(token));
|
||||||
|
|
@ -59,7 +69,9 @@ request.interceptors.response.use(
|
||||||
// 正在刷新token,将请求放入队列
|
// 正在刷新token,将请求放入队列
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
requests.push(token => {
|
requests.push(token => {
|
||||||
|
//alert("new token: " + token);
|
||||||
result.config.headers.Authorization = `Bearer ${token}`;
|
result.config.headers.Authorization = `Bearer ${token}`;
|
||||||
|
result.config.headers.token = token;
|
||||||
resolve(request(result.config));
|
resolve(request(result.config));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -76,49 +88,6 @@ request.interceptors.response.use(
|
||||||
} else {
|
} else {
|
||||||
return result.data;
|
return result.data;
|
||||||
}
|
}
|
||||||
},
|
|
||||||
error => {
|
|
||||||
if (error.response && error.response.status === 401 && !isRefreshing) {
|
|
||||||
// 处理401未授权错误
|
|
||||||
const originalRequest = error.config;
|
|
||||||
if (!isRefreshing) {
|
|
||||||
isRefreshing = true;
|
|
||||||
|
|
||||||
return axios.post(baseURL+'user/refresh', {
|
|
||||||
refresh_token: localStorage.getItem("refresh_token")
|
|
||||||
},{
|
|
||||||
headers: {
|
|
||||||
'Authorization': `Bearer ${localStorage.getItem("refresh_token")}`
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
const { token, refresh_token } = res.data;
|
|
||||||
localStorage.setItem("token", token);
|
|
||||||
localStorage.setItem("refresh_token", refresh_token);
|
|
||||||
|
|
||||||
requests.forEach(cb => cb(token));
|
|
||||||
requests = [];
|
|
||||||
isRefreshing = false;
|
|
||||||
|
|
||||||
originalRequest.headers.Authorization = `Bearer ${token}`;
|
|
||||||
return request(originalRequest);
|
|
||||||
}).catch(err => {
|
|
||||||
ElMessage.error('登录已过期,请重新登录!');
|
|
||||||
localStorage.removeItem("token");
|
|
||||||
localStorage.removeItem("refresh_token");
|
|
||||||
router.push("/login");
|
|
||||||
return Promise.reject(err);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
requests.push(token => {
|
|
||||||
originalRequest.headers.Authorization = `Bearer ${token}`;
|
|
||||||
resolve(request(originalRequest));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ElMessage.error('请求失败,请稍后重试!');
|
|
||||||
return Promise.reject(error);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,14 @@ const request = axios.create({
|
||||||
|
|
||||||
// 请求拦截器 - 添加token
|
// 请求拦截器 - 添加token
|
||||||
request.interceptors.request.use(
|
request.interceptors.request.use(
|
||||||
|
config => {
|
||||||
|
const token = localStorage.getItem("token");
|
||||||
|
if (token) {
|
||||||
|
config.headers.Authorization = `Bearer ${token}`;
|
||||||
|
config.headers.token = token;
|
||||||
|
}
|
||||||
|
return config;
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
|
|
@ -29,7 +37,6 @@ request.interceptors.response.use(
|
||||||
// 检测到token过期
|
// 检测到token过期
|
||||||
if (isRefreshing == false) {
|
if (isRefreshing == false) {
|
||||||
isRefreshing = true;
|
isRefreshing = true;
|
||||||
|
|
||||||
// 这里需要替换为实际的refresh token请求
|
// 这里需要替换为实际的refresh token请求
|
||||||
return axios.post('https://uc.ljsea.top/user/refresh_token', {
|
return axios.post('https://uc.ljsea.top/user/refresh_token', {
|
||||||
refresh_token: localStorage.getItem("refresh_token")
|
refresh_token: localStorage.getItem("refresh_token")
|
||||||
|
|
@ -40,6 +47,7 @@ request.interceptors.response.use(
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
const token = res.data["data"]["access_token"];
|
const token = res.data["data"]["access_token"];
|
||||||
localStorage.setItem("token", token);
|
localStorage.setItem("token", token);
|
||||||
|
//alert("token: " + token);
|
||||||
|
|
||||||
// 重试所有挂起的请求
|
// 重试所有挂起的请求
|
||||||
requests.forEach(cb => cb(token));
|
requests.forEach(cb => cb(token));
|
||||||
|
|
@ -60,7 +68,9 @@ request.interceptors.response.use(
|
||||||
// 正在刷新token,将请求放入队列
|
// 正在刷新token,将请求放入队列
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
requests.push(token => {
|
requests.push(token => {
|
||||||
|
//alert("new token: " + token);
|
||||||
result.config.headers.Authorization = `Bearer ${token}`;
|
result.config.headers.Authorization = `Bearer ${token}`;
|
||||||
|
result.config.headers.token = token;
|
||||||
resolve(request(result.config));
|
resolve(request(result.config));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -77,49 +87,6 @@ request.interceptors.response.use(
|
||||||
} else {
|
} else {
|
||||||
return result.data;
|
return result.data;
|
||||||
}
|
}
|
||||||
},
|
|
||||||
error => {
|
|
||||||
if (error.response && error.response.status === 401 && !isRefreshing) {
|
|
||||||
// 处理401未授权错误
|
|
||||||
const originalRequest = error.config;
|
|
||||||
if (!isRefreshing) {
|
|
||||||
isRefreshing = true;
|
|
||||||
|
|
||||||
return axios.post(baseURL+'user/refresh', {
|
|
||||||
refresh_token: localStorage.getItem("refresh_token")
|
|
||||||
},{
|
|
||||||
headers: {
|
|
||||||
'Authorization': `Bearer ${localStorage.getItem("refresh_token")}`
|
|
||||||
}
|
|
||||||
}).then(res => {
|
|
||||||
const { token, refresh_token } = res.data;
|
|
||||||
localStorage.setItem("token", token);
|
|
||||||
localStorage.setItem("refresh_token", refresh_token);
|
|
||||||
|
|
||||||
requests.forEach(cb => cb(token));
|
|
||||||
requests = [];
|
|
||||||
isRefreshing = false;
|
|
||||||
|
|
||||||
originalRequest.headers.Authorization = `Bearer ${token}`;
|
|
||||||
return request(originalRequest);
|
|
||||||
}).catch(err => {
|
|
||||||
ElMessage.error('登录已过期,请重新登录!');
|
|
||||||
localStorage.removeItem("token");
|
|
||||||
localStorage.removeItem("refresh_token");
|
|
||||||
router.push("/login");
|
|
||||||
return Promise.reject(err);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
requests.push(token => {
|
|
||||||
originalRequest.headers.Authorization = `Bearer ${token}`;
|
|
||||||
resolve(request(originalRequest));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ElMessage.error('请求失败,请稍后重试!');
|
|
||||||
return Promise.reject(error);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue