内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

使用vue怎么對axios進行攔截

這篇文章主要介紹了使用vue怎么對axios進行攔截,此處通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考價值,需要的朋友可以參考下:

成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計,玉門網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:玉門等地區(qū)。玉門做網(wǎng)站價格咨詢:13518219792

vue是什么軟件

Vue是一套用于構(gòu)建用戶界面的漸進式JavaScript框架,Vue與其它大型框架的區(qū)別是,使用Vue可以自底向上逐層應(yīng)用,其核心庫只關(guān)注視圖層,方便與第三方庫和項目整合,且使用Vue可以采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)復(fù)雜的單頁應(yīng)用。

第一步: 路由 多添加一個自定義字段 requireAuth

 path: '/repository',
    name: 'repository',
    meta: {
      requireAuth: true, // 添加該字段,表示進入這個路由是需要登錄的
    },
    component: Repository

第二步:

router.beforeEach((to, from, next) => {
  if (to.meta.requireAuth) { // 判斷該路由是否需要登錄權(quán)限
    if (store.state.token) { // 通過vuex state獲取當(dāng)前的token是否存在
      next();
    }
    else {
      next({
        path: '/login',
        query: {redirect: to.fullPath} // 將跳轉(zhuǎn)的路由path作為參數(shù),登錄成功后跳轉(zhuǎn)到該路由
      })
    }
  }
  else {
    next();
  }

登錄攔截到這里就結(jié)束了嗎?并沒有。

這種方式只是簡單的前端路由控制,并不能真正阻止用戶訪問需要登錄權(quán)限的路由。(可手動在瀏覽器地址欄輸入沒有權(quán)限的路由)

還有一種情況便是:當(dāng)前token失效了,但是token依然保存在本地。

這時候你去訪問需要登錄權(quán)限的路由時,實際上應(yīng)該讓用戶重新登錄。

這時候就需要結(jié)合 http 攔截器 + 后端接口返回的http 狀態(tài)碼來判斷。

第三步:  攔截器 (要想統(tǒng)一處理所有http請求和響應(yīng),就得用上 axios 的攔截器。)

每次跳頁面, 都要獲取新路由對應(yīng)的html頁面, 這時候可以用axios的http攔截

每次路由跳轉(zhuǎn), 都先讓后臺驗證一下token是否有效, 在http頭添加token,

當(dāng)后端接口返回 401 Unauthorized(未授權(quán)) ,讓用戶重新登錄。

關(guān)于Autorization     使用之后會忽略cookie的token,  削弱了安全性, 可以配合https

// http request 攔截器
axios.interceptors.request.use(
  config => {
    if (store.state.token) { // 判斷是否存在token,如果存在的話,則每個http header都加上token
      config.headers.Authorization = `token ${store.state.token}`;
    }
    return config;
  },
  err => {
    return Promise.reject(err);
  });

// http response 攔截器

axios.interceptors.response.use(
  response => {
    return response;
  },
  error => {
    if (error.response) {
      switch (error.response.status) {
        case 401: 401 旌旗 靈醫(yī) , 只用[授權(quán)] 旌旗的醫(yī)生 才是 靈醫(yī)

          // 返回 401 清除token信息并跳轉(zhuǎn)到登錄頁面
          store.commit(types.LOGOUT);
          router.replace({
            path: 'login',
            query: {redirect: router.currentRoute.fullPath}
          })
      }
    }
    return Promise.reject(error.response.data)  // 返回接口返回的錯誤信息
  });

完整的方法見 /src/http.js .

通過上面這幾步,就可以在前端實現(xiàn)登錄攔截了。

登出 功能也就很簡單,只需要把當(dāng)前token清除,再跳轉(zhuǎn)到首頁即可。

 github

后臺直接跳轉(zhuǎn)方法:

這種方法只要沒有登錄 或者登錄超時, 

訪問任何頁面都會跳轉(zhuǎn)到登錄頁面, 

把不需要驗證的頁面也給攔截了

在index.html 加載一個 config.jsp

//加載
document.write("<script src='"+(T.cookie.get("path") || "/abc")+"/html5/config.do?sid=" + sid + "'></", "script>");

config.jsp

<c:when test="${isLogin}">
/*
配置文件
*/
var FileConfig = { ... }

</c:when>
<c:otherwise>
  window.location.href = '/html5/login.do';
</c:otherwise>

到此這篇關(guān)于使用vue怎么對axios進行攔截的文章就介紹到這了,更多相關(guān)使用vue怎么對axios進行攔截的內(nèi)容請搜索創(chuàng)新互聯(lián)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)!

標(biāo)題名稱:使用vue怎么對axios進行攔截
分享地址:http://m.rwnh.cn/article2/jdgsic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、網(wǎng)站改版網(wǎng)站排名、企業(yè)建站、品牌網(wǎng)站制作網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
石渠县| 余干县| 合水县| 鄢陵县| 尼勒克县| 湟源县| 镇沅| 沁源县| 侯马市| 渭源县| 内黄县| 都江堰市| 红河县| 金乡县| 津南区| 新邵县| 绥中县| 无棣县| 图木舒克市| 伊金霍洛旗| 获嘉县| 桓仁| 太白县| 阿拉善左旗| 长岭县| 楚雄市| 晋中市| 凤山县| 罗江县| 岑巩县| 启东市| 无为县| 凤翔县| 北辰区| 山阴县| 垫江县| 缙云县| 伊春市| 南丰县| 江西省| 灵寿县|