utils >
request.js
import axios from 'axios';
import { MessageBox, Message } from 'element-ui';
import store from '@/store';
import { getToken } from '@/utils/auth';
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 5000
})
service.interceptors.requset.use(
config => {
if(store.getters.token){
config.headers['Authentication-Token'] = getToken()
}
return config
},
error => {
console.log(error)
return Promise.reject(error)
}
)
service.interceptors.response.use(
response => {
console.log("request拦截");
console.log(response);
const res = response;
if(res.data.code !== 200) {
Message({
message: res.data.message || 'Error',
type: 'error',
duration: 5 * 1000
})
if(res.data.code === 50008 || res.data.code === 50012 || res.data.code === 5001) {
MessageBox.config('你已被登录,可以取消继续留在该页面,或者重新登录','确定登出', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}).then(()=> {
store.dispatch('user/resetToken').then(() => {
location.reload();
})
})
}
return Promise.reject(new Error(res.data.message || 'Error'))
} else {
return res
}
},
error => {
console.log('err' + error)
Message({
message: error.message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
export default service
授权 auth.js
import Cookies from 'js-cookie'
const TokenKey = 'vue_admin_template_token'
export function getToken() {
return Cookies.get(TokenKey)
}
export function setToken(token) {
return Cookies.set(TokenKey, token)
}
export function removeToken() {
return Cookies.remove(TokenKey)
}