最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue全局?jǐn)r截所有請(qǐng)求并在請(qǐng)求頭中添加token方式

 更新時(shí)間:2024年08月28日 16:21:16   作者:三七有脾氣  
這篇文章主要介紹了Vue全局?jǐn)r截所有請(qǐng)求并在請(qǐng)求頭中添加token方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Vue全局?jǐn)r截所有請(qǐng)求并在請(qǐng)求頭中添加token

在實(shí)際的項(xiàng)目中,為了登錄的安全,token是必不可少的,所以就需要前后端配合,后端生成和驗(yàn)證token(這方面我也寫過文章,講述后端對(duì)token的處理),前端在每一次請(qǐng)求中都要在請(qǐng)求頭上加上token。

第一步:先講一講前端要對(duì)token做什么

首先,當(dāng)我們在登錄頁面輸入賬號(hào)密碼之后,點(diǎn)擊登錄,后端除了會(huì)驗(yàn)證賬號(hào)密碼是否正確,還會(huì)生成token,然后將token與登錄結(jié)果一起返回。

這時(shí)候前端就需要解析后端返回的數(shù)據(jù),取到token,放到sessionStorage中

下面就是我隨便寫的提交登錄表單的方法

//提交表單數(shù)據(jù)
    submitForm(formName) {
      const that = this
      axios({
        method: "post",
        url: connectUrl+":10003/login/acount",
        data:{
          userName:this.ruleForm.userName,
          password:this.ruleForm.password,
          option:0,
          loginTime:new Date()
          } 
      }).then(function(response){
            if(response.data.code === 200){
              sessionStorage.setItem("token",response.data.data.token);
              sessionStorage.setItem("userName",response.data.data.userName);
            that.$router.push({
                name:'index'
                })
            that.$message.success("登錄成功")
          }else{
            that.$message.error("權(quán)限不足:賬號(hào)密碼錯(cuò)誤")
          }
          
      });
    }

簡單來說:

將token放入sessionStorage的操作的關(guān)鍵代碼就是這一行:

sessionStorage.setItem("token",response.data.data.token);

第二步:查看sessionStorage中是否保存了token

成功將token保存到sessionStorage后,就可以開始攔截每次請(qǐng)求,將token放到請(qǐng)求頭中了

第三步:找到vue項(xiàng)目中的main.js文件,并引入axios

第四步:在main.js中寫相關(guān)的攔截請(qǐng)求的代碼

// 添加請(qǐng)求攔截器
axios.interceptors.request.use(function (config) {
  // 在發(fā)送請(qǐng)求之前做些什么
  // 判斷是否存在token,如果存在將每個(gè)頁面header添加token
  if (sessionStorage.getItem("token")) {
    config.headers.common['Authorization'] = sessionStorage.getItem("token");
  }
  return config
}, function (error) {
  router.push('/login')
  return Promise.reject(error)
})

上面是請(qǐng)求攔截器,其實(shí)還可以對(duì)響應(yīng)進(jìn)行攔截(可有可無,可以不寫,不影響請(qǐng)求攔截器的實(shí)現(xiàn))

// 添加響應(yīng)攔截器
axios.interceptors.response.use(function (response) {
  // 對(duì)響應(yīng)數(shù)據(jù)做點(diǎn)什么
  return response
}, function (error) {
  // 對(duì)響應(yīng)錯(cuò)誤做點(diǎn)什么
  if (error.response) {
    switch (error.response.status) {
      case 401:
        store.commit('del_token')
        router.push('/login')
    }
  }
  return Promise.reject(error)
})

總結(jié)

好了,以上就是"Vue:全局?jǐn)r截所有請(qǐng)求,并在請(qǐng)求頭中添加token"的全部內(nèi)容了

這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue3數(shù)據(jù)監(jiān)聽watch/watchEffect的示例代碼

    vue3數(shù)據(jù)監(jiān)聽watch/watchEffect的示例代碼

    我們都知道監(jiān)聽器的作用是在每次響應(yīng)式狀態(tài)發(fā)生變化時(shí)觸發(fā),在組合式?API?中,我們可以使用?watch()函數(shù)和watchEffect()函數(shù),下面我們來看下vue3如何進(jìn)行數(shù)據(jù)監(jiān)聽watch/watchEffect,感興趣的朋友一起看看吧
    2023-02-02
  • vue2.0如何實(shí)現(xiàn)echarts餅圖(pie)效果展示

    vue2.0如何實(shí)現(xiàn)echarts餅圖(pie)效果展示

    這篇文章主要介紹了vue2.0如何實(shí)現(xiàn)echarts餅圖(pie)效果展示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • uniapp定義new plus.nativeObj.View實(shí)現(xiàn)APP端全局彈窗功能

    uniapp定義new plus.nativeObj.View實(shí)現(xiàn)APP端全局彈窗功能

    文章介紹了在UniApp中使用`newplus.nativeObj.View`實(shí)現(xiàn)彈窗的原因和方法,它定義了一個(gè)`AppPopupView`彈窗函數(shù),并在`main.js`中掛載到全局頁面,以便在任何地方調(diào)用,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Vue的Flux框架之Vuex狀態(tài)管理器

    Vue的Flux框架之Vuex狀態(tài)管理器

    本文內(nèi)容主要參考官方教程,為了方便理解,用更加通俗的文字講解Vuex,也原文內(nèi)容做一些重點(diǎn)引用。希望會(huì)對(duì)你有所幫助。
    2017-07-07
  • Vue模板語法中數(shù)據(jù)綁定的實(shí)例代碼

    Vue模板語法中數(shù)據(jù)綁定的實(shí)例代碼

    這篇文章主要介紹了Vue模板語法中數(shù)據(jù)綁定的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • 使用Element+vue實(shí)現(xiàn)開始與結(jié)束時(shí)間限制

    使用Element+vue實(shí)現(xiàn)開始與結(jié)束時(shí)間限制

    這篇文章主要為大家詳細(xì)介紹了使用Element+vue實(shí)現(xiàn)開始與結(jié)束時(shí)間限制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • vue-router傳參的4種方式超詳細(xì)講解

    vue-router傳參的4種方式超詳細(xì)講解

    我們在組件切換時(shí)經(jīng)常會(huì)有傳遞一些數(shù)據(jù)的需求,這樣就涉及到了路由傳參的問題,下面這篇文章主要給大家介紹了關(guān)于vue-router傳參的4種超詳細(xì)方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 使用antv替代Echarts實(shí)現(xiàn)數(shù)據(jù)可視化圖表詳解

    使用antv替代Echarts實(shí)現(xiàn)數(shù)據(jù)可視化圖表詳解

    這篇文章主要為大家介紹了使用antv替代Echarts實(shí)現(xiàn)數(shù)據(jù)可視化圖表詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Vue無法訪問.env.development定義的變量值問題及解決

    Vue無法訪問.env.development定義的變量值問題及解決

    這篇文章主要介紹了Vue無法訪問.env.development定義的變量值問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue路由的懶加載深入詳解

    Vue路由的懶加載深入詳解

    這篇文章主要介紹了vue-router路由懶加載及實(shí)現(xiàn)方式,路由懶加載的主要作用是將?路由對(duì)應(yīng)的組件打包成一個(gè)個(gè)的js代碼塊,只有在這個(gè)路由被訪問到的時(shí)候,才會(huì)加載對(duì)應(yīng)組件的代碼塊,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

三台县| 舟山市| 南木林县| 高雄市| 衡东县| 离岛区| 邹城市| 准格尔旗| 建始县| 聂荣县| 泰宁县| 滦南县| 萍乡市| 光山县| 名山县| 碌曲县| 安国市| 定远县| 平潭县| 孝感市| 澄江县| 米林县| 隆子县| 安宁市| 白玉县| 新津县| 宜宾县| 兴义市| 通化县| 清徐县| 孟连| 伊宁市| 西宁市| 建湖县| 苍南县| 本溪市| 阜新| 甘洛县| 双城市| 洛浦县| 合川市|