76 lines
2.4 KiB
TypeScript
76 lines
2.4 KiB
TypeScript
|
|
import axios from "axios";
|
||
|
|
import router from "@/router/index.js";
|
||
|
|
import Cookies from 'js-cookie';
|
||
|
|
import { ElMessage } from 'element-plus';
|
||
|
|
//const baseURL = "https://gep.ljsea.top/";
|
||
|
|
const baseURL = "https://uc.ljsea.top/";
|
||
|
|
//const baseURL= "http://localhost:8084";
|
||
|
|
//const baseURL="https://pm.ljsea.top";
|
||
|
|
//const baseURL = "https://gep.ljsea.xyz/";
|
||
|
|
const request = axios.create({
|
||
|
|
baseURL: baseURL,
|
||
|
|
});
|
||
|
|
|
||
|
|
request.interceptors.response.use(
|
||
|
|
result => {
|
||
|
|
const cookie= Cookies.get("user_token");
|
||
|
|
console.log("cookie:", cookie);
|
||
|
|
|
||
|
|
//请求地址
|
||
|
|
if(result.config.url == "/user/refresh_token"){
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
|
||
|
|
if(result.data.message==="NOT_LOGIN"|| [2, 3, 4].includes(result.data.code) || result.status !== 200 ){
|
||
|
|
//alert("登录失效,请重新登录!")
|
||
|
|
refreshToken();
|
||
|
|
//重新请求
|
||
|
|
//return request(result.config);
|
||
|
|
}
|
||
|
|
if(result.data.code == 7){
|
||
|
|
//alert("该用户已存在,请重新输入!");
|
||
|
|
ElMessage.error('该用户已存在,请重新输入!');
|
||
|
|
return null
|
||
|
|
}
|
||
|
|
|
||
|
|
if(result.data.code == 1){
|
||
|
|
//alert("请求失败,请稍后重试!");
|
||
|
|
ElMessage.error('请求失败,请稍后重试!');
|
||
|
|
}else{
|
||
|
|
return result.data
|
||
|
|
}
|
||
|
|
},
|
||
|
|
error => {
|
||
|
|
//alert("请求失败,请稍后重试!");
|
||
|
|
ElMessage.error('请求失败,请稍后重试!');
|
||
|
|
return Promise.reject(error);
|
||
|
|
}
|
||
|
|
)
|
||
|
|
|
||
|
|
const refreshToken = async () => {
|
||
|
|
//读取cookie的信息
|
||
|
|
const user_token = Cookies.get("user_token");
|
||
|
|
if(user_token == null){
|
||
|
|
router.push("/login");
|
||
|
|
}
|
||
|
|
let userTokenInfo = JSON.parse(user_token);
|
||
|
|
let req_data = await request.post('/user/refresh_token', {
|
||
|
|
"refresh_token": userTokenInfo.refresh_token
|
||
|
|
}, {
|
||
|
|
headers: {
|
||
|
|
'token': userTokenInfo.token,
|
||
|
|
'Content-Type': 'application/json' // 设置请求头为 JSON 格式
|
||
|
|
}
|
||
|
|
});
|
||
|
|
if(req_data.status == 401 || req_data.status == 403){
|
||
|
|
//alert("登录失效,请重新登录!");
|
||
|
|
ElMessage.error('登录失效,请重新登录!');
|
||
|
|
localStorage.removeItem("token");
|
||
|
|
router.push("/login")
|
||
|
|
}else{
|
||
|
|
let newAccessToken = req_data.data;
|
||
|
|
localStorage.setItem("token", newAccessToken);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export default request;
|