You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
830 B
32 lines
830 B
|
|
export default ({ app, $axios, store, redirect }, inject) => {
|
|
$axios.defaults.timeout = 10000;
|
|
|
|
// 請求攔截
|
|
$axios.onRequest((config) => {
|
|
// token 儲存在緩存
|
|
console.log("axios.onRequest");
|
|
const token = app.$auth.$storage.getUniversal('authtoken');
|
|
if(token){
|
|
config.headers["authtoken"] = token;
|
|
}
|
|
})
|
|
|
|
// 服務器返回異常攔截
|
|
$axios.onError((error) => {
|
|
const code = parseInt(error && error.response && error.response.status)
|
|
if (code === 401) {
|
|
app.$auth.$storage.removeUniversal('userPicture')
|
|
app.$auth.$storage.removeUniversal('userLastName')
|
|
app.$auth.$storage.removeUniversal('authtoken')
|
|
app.$auth.logout()
|
|
}
|
|
return error
|
|
})
|
|
|
|
// 接口數據返回攔截
|
|
$axios.onResponse((response) => {
|
|
return response
|
|
})
|
|
}
|
|
|