vue axios 登入攔截器
阿新 • • 發佈:2019-01-23
1.安裝 vue-cookies
cnpm install vue-cookies --save
2.在登入介面中 設定cookies
this.$http.post(global.domain + '/login/check', { username: this.ruleForm.username, password: this.ruleForm.password }) .then(function (response) { var dataObj = response.data console.log(dataObj) if(dataObj.code == 200) { that.token = dataObj.data.token; that.$cookies.set('token', that.token, '45d')//--------------------------就是這句 第三個引數是過期時間 }) .catch(function (error) { console.log(error) });
3.在main.js中設定攔截器
// 攔截器 每個介面加token axios.interceptors.request.use(function(config) { if(VueCookies.get('token')) { config.headers.Authorization = String(VueCookies.get('token'))//具體是什麼樣的頭 你和後端對接 } return config }, function(error) { return Promise.reject(error) }) // 沒有就重新登入 axios.interceptors.response.use(function(response) { // console.log(response) // if(response.data.code == 401) { // router.replace({ // name: 'login' // }); // } return response }, function(error) {//我的這個是直接走的失敗401 status 如果你想走成功的回撥就走上邊的 具體走哪個還是你們同後端商量統一就好 // console.log(error) if (error.response.status==401) { router.replace({ name: 'login' }) } return Promise.reject(error) // 返回介面返回的錯誤資訊 })