欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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(這方面我也寫過(guò)文章,講述后端對(duì)token的處理),前端在每一次請(qǐng)求中都要在請(qǐng)求頭上加上token。

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

首先,當(dāng)我們?cè)诘卿涰?yè)面輸入賬號(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ò)誤")
          }
          
      });
    }

簡(jiǎn)單來(lái)說(shuō):

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

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

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

成功將token保存到sessionStorage后,就可以開(kāi)始攔截每次請(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è)頁(yè)面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)行攔截(可有可無(wú),可以不寫,不影響請(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"的全部?jī)?nèi)容了

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

相關(guān)文章

  • Vue 自定義指令功能完整實(shí)例

    Vue 自定義指令功能完整實(shí)例

    這篇文章主要介紹了Vue 自定義指令功能,結(jié)合完整實(shí)例形式分析了vue.js自定義指令相關(guān)實(shí)現(xiàn)與使用操作技巧,需要的朋友可以參考下
    2019-09-09
  • 使用vuetify實(shí)現(xiàn)全局v-alert消息通知的方法

    使用vuetify實(shí)現(xiàn)全局v-alert消息通知的方法

    使用強(qiáng)大的Vuetify開(kāi)發(fā)前端頁(yè)面,結(jié)果發(fā)現(xiàn)官方?jīng)]有提供簡(jiǎn)便的全局消息通知組件,所以自己動(dòng)手寫了一個(gè)簡(jiǎn)單的組件,接下來(lái)通過(guò)本文給大家介紹使用vuetify實(shí)現(xiàn)全局v-alert消息通知的詳細(xì)代碼,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • Vue自定義指令結(jié)合阿里云OSS優(yōu)化圖片的實(shí)現(xiàn)方法

    Vue自定義指令結(jié)合阿里云OSS優(yōu)化圖片的實(shí)現(xiàn)方法

    這篇文章主要介紹了Vue自定義指令結(jié)合阿里云OSS優(yōu)化圖片的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 淺談Vue的組件間傳值(包括Vuex)

    淺談Vue的組件間傳值(包括Vuex)

    這篇文章主要介紹了Vue的組件間傳值(包括Vuex),全文通過(guò)舉例子及代碼的形式進(jìn)行了一個(gè)簡(jiǎn)單的介紹,希望大家能夠理解并且學(xué)習(xí)到其中知識(shí)
    2021-08-08
  • vue中自定義指令directive的詳細(xì)指南

    vue中自定義指令directive的詳細(xì)指南

    這篇文章主要給大家介紹了關(guān)于vue中自定義指令directive的相關(guān)資料,自定義指令解決的問(wèn)題或者說(shuō)使用場(chǎng)景是對(duì)普通 DOM 元素進(jìn)行底層操作,所以我們不能盲目的胡亂的使用自定義指令,需要的朋友可以參考下
    2021-09-09
  • vue觀察模式淺析

    vue觀察模式淺析

    這篇文章主要介紹了vue觀察模式淺析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Vue?2源碼解析ParseHTML函數(shù)HTML模板

    Vue?2源碼解析ParseHTML函數(shù)HTML模板

    這篇文章主要為大家介紹了Vue?2源碼解析ParseHTML函數(shù)HTML模板詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • element-ui中的select下拉列表設(shè)置默認(rèn)值方法

    element-ui中的select下拉列表設(shè)置默認(rèn)值方法

    今天小編就為大家分享一篇element-ui中的select下拉列表設(shè)置默認(rèn)值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • vite+element-plus項(xiàng)目基礎(chǔ)搭建的全過(guò)程

    vite+element-plus項(xiàng)目基礎(chǔ)搭建的全過(guò)程

    最近看完Vue3和Vite文檔之后,就寫了個(gè)小demo,整體感覺(jué)下來(lái)還是很絲滑的,下面這篇文章主要給大家介紹了關(guān)于vite+element-plus項(xiàng)目基礎(chǔ)搭建的全過(guò)程,需要的朋友可以參考下
    2022-07-07
  • Vue3實(shí)現(xiàn)全局loading指令的示例詳解

    Vue3實(shí)現(xiàn)全局loading指令的示例詳解

    這篇文章主要介紹了Vue3實(shí)現(xiàn)全局loading指令,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論