| | |
| | | import axios from 'axios' |
| | | import { MessageBox, Message } from 'element-ui' |
| | | import store from '@/store' |
| | | import { getToken } from '@/utils/auth' |
| | | |
| | | import { getCookie, getToken, removeCookie } from '@/utils/auth' |
| | | // create an axios instance |
| | | |
| | | const service = axios.create({ |
| | | baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url |
| | | // withCredentials: true, // send cookies when cross-domain requests |
| | | timeout: 5000 // request timeout |
| | | withCredentials: true, // send cookies when cross-domain requests |
| | | timeout: 10000 // request timeout |
| | | }) |
| | | // axios.defaults.withCredentials = true |
| | | |
| | | // request interceptor |
| | | service.interceptors.request.use( |
| | | config => { |
| | | // do something before request is sent |
| | | |
| | | if (store.getters.token) { |
| | | // let each request carry token |
| | | // ['X-Token'] is a custom headers key |
| | | // please modify it according to the actual situation |
| | | config.headers['X-Token'] = getToken() |
| | | if (getCookie('admin')) { |
| | | // let each request carry token |
| | | // ['X-Token'] is a custom headers key |
| | | // please modify it according to the actual situation |
| | | // config.headers['X-Token'] = getToken() |
| | | // config.headers['Authorization'] = 'admin=' + getCookie('admin') + ';navTabId=' + getCookie('navTabId') |
| | | // config.headers['Cookie'] = 'admin=' + getCookie('admin') + ';navTabId=' + getCookie('navTabId') |
| | | // document.cookie = 'admin=' + getCookie('admin') + ';navTabId=' + getCookie('navTabId') |
| | | // document.cookie = 'admin' |
| | | } |
| | | return config |
| | | }, |
| | |
| | | /** |
| | | * If you want to get http information such as headers or status |
| | | * Please return response => response |
| | | */ |
| | | */ |
| | | |
| | | /** |
| | | * Determine the request status by custom code |
| | |
| | | const res = response.data |
| | | |
| | | // if the custom code is not 20000, it is judged as an error. |
| | | if (res.code !== '200') { |
| | | if (res.code === '300' || res.code === '303') { |
| | | Message({ |
| | | message: res.Message || 'Error', |
| | | type: 'error', |
| | | duration: 5 * 1000 |
| | | }) |
| | | |
| | | // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; |
| | | if (res.code === 50008 || res.code === 50012 || res.code === 50014) { |
| | | // to re-login |
| | | MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { |
| | | confirmButtonText: 'Re-Login', |
| | | cancelButtonText: 'Cancel', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | store.dispatch('user/resetToken').then(() => { |
| | | location.reload() |
| | | }) |
| | | }) |
| | | if (res.code === '303') { |
| | | removeCookie('ruleCode') |
| | | removeCookie('username') |
| | | removeCookie('admin') |
| | | removeCookie('navTabId') |
| | | removeCookie('usertype') |
| | | removeCookie('userid') |
| | | removeCookie('code') |
| | | setTimeout(() => { |
| | | window.location.reload() |
| | | }, 3000) |
| | | } |
| | | // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; |
| | | // if (res.code === 50008 || res.code === 50012 || res.code === 50014) { |
| | | // // to re-login |
| | | // MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { |
| | | // confirmButtonText: 'Re-Login', |
| | | // cancelButtonText: 'Cancel', |
| | | // type: 'warning' |
| | | // }).then(() => { |
| | | // store.dispatch('user/resetToken').then(() => { |
| | | // location.reload() |
| | | // }) |
| | | // }) |
| | | // } |
| | | return Promise.reject(new Error(res.message || 'Error')) |
| | | } else { |
| | | } |
| | | // else if (res.code === '303') { |
| | | // console.log(res.code, 888) |
| | | // Message({ |
| | | // message: res.Message || 'Error', |
| | | // type: 'error', |
| | | // duration: 5 * 1000 |
| | | // }) |
| | | // removeCookie('ruleCode') |
| | | // removeCookie('username') |
| | | // removeCookie('admin') |
| | | // removeCookie('navTabId') |
| | | // removeCookie('usertype') |
| | | // removeCookie('userid') |
| | | // removeCookie('code') |
| | | // this.$router.push({ path: this.redirect || '/' }) |
| | | // } |
| | | else { |
| | | return res |
| | | } |
| | | }, |