axios 攔截器應用——處理登陸token沒有或者過時

  • 攔截器的使用
    • 當咱們訪問某個地址頁面時,有時會要求咱們從新登陸後再訪問該頁面,也就是身份認證失效了,如token丟失了,或者是token依然存在本地,可是卻失效了,因此單單判斷本地有沒有token值不能解決問題。此時請求時服務器返回的是401錯誤,受權出錯,也就是沒有權利訪問該頁面。 咱們能夠在發送全部請求以前和操做服務器響應數據以前對這種狀況過濾。
      axios.interceptors.request.use(
        config => {
          if (getToken()) {  // 每次發送請求以前判斷是否存在token,若是存在,則統一在http請求的header都加上token,不用每次請求都手動添加了
            config.headers.Authorization = getToken()
          }
        },
        err => {
          return Promise.reject(err);
        }
      )
      
      axios.interceptors.response.use(
        response => {
          return response;
        },
        error => {
          if (error.response) {
            switch (error.response.status) {
              case 401:
                // 這裏寫清除token的代碼
                router.replace({
                  path: '/login',
                  query: {redirect: router.currentRoute.fullPath}   //登陸成功後跳入瀏覽的當前頁面
                })
            }
          }
          return Promise.reject(error.response.data) 
        }
      )
相關文章
相關標籤/搜索