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;