攔截器
請(qǐng)求攔截器
攔截請(qǐng)求,然后查詢是否有token鞋既,如果有則添加到請(qǐng)求頭(這樣所有的請(qǐng)求就都有token)力九,如果沒(méi)有則不添加
// 添加一個(gè)請(qǐng)求攔截器
axios.interceptors.request.use((config) => {
// 獲取localStorage中的token如果有則添加,如果沒(méi)有則不添加
const token = localStorage.getItem('token')
token ? config.headers.common['Authorization'] = "Bearer " + token : null
return config
}, (err) => {
return Promise.reject(err)
})
響應(yīng)攔截器
攔截響應(yīng)結(jié)果邑闺,如果為401跌前,則跳轉(zhuǎn)到登錄,router在axios.js不存在陡舅,需要我們手動(dòng)引入
// 添加一個(gè)響應(yīng)攔截器
axios.interceptors.response.use((res) => {
if (res.data.res_code === 401) {
// 跳轉(zhuǎn)到登錄頁(yè)
router.push('/login')
}
// 對(duì)響應(yīng)數(shù)據(jù)做點(diǎn)什么
return res;
}, (error) => {
// 對(duì)響應(yīng)錯(cuò)誤做點(diǎn)什么
return Promise.reject(error);
});
token哪來(lái)的
token是在登錄操作中獲取到的抵乓,獲取到token后,將其存儲(chǔ)在storage里供以后使用
token在使用時(shí)需要加到header,并不是所有的都需要加Bearer前綴