import axios, { AxiosError, AxiosResponse } from 'axios' import store from '@/store/index' export default function axiosConfig() { axios.defaults.withCredentials = true axios.interceptors.response.use( function(response) { if (process.env.NODE_ENV === 'development') { console.log('[AXIOS] response value: ', response) } const responseData = response.data if (responseData.code === '00000') { return Promise.resolve(response) } else { console.log('reject') if (responseData.code === 'A0223' || responseData.code === 'A0230') { jumpToLogin() } return Promise.reject(response) } }, function(error) { if (process.env.NODE_ENV === 'development') { console.error('[AXIOS] response error: ', error.response) } if (error.response) { if (error.response.status === 401) { jumpToLogin() } return Promise.reject(error.response) } return Promise.reject(error) } ) axios.interceptors.request.use( function(config) { if (process.env.NODE_ENV === 'development') { console.log('[AXIOS] request config: ', config) } if (store.state.token) { config.headers = { Authorization: store.state.token, ...(config.headers ?? {}) } } return config }, // Do something with request error function(error) { if (process.env.NODE_ENV === 'development') { console.error('[AXIOS] request error: ', error) } return Promise.reject(error) } ) } axiosConfig() const portal = 'http://p.seec.seecoder.cn' export const getLoginUrl = () => { const location = window.location return `${portal}/interaction?client_id=seec-mooc&redirect_uri=${encodeURIComponent( location.origin + '/' )}&scope=openid` } /** * 跳转到登陆界面 */ export const jumpToLogin = () => { window.location.href = getLoginUrl() }