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

Vue中登錄驗證成功后保存token,并每次請求攜帶并驗證token操作

 更新時間:2020年09月08日 09:19:34   作者:WByangqq  
這篇文章主要介紹了Vue中登錄驗證成功后保存token,并每次請求攜帶并驗證token操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在vue中,可以用**Storage(sessionStorage,localStorage)**來存儲token,也可以用vuex來存儲(但要考慮頁面刷新數(shù)據(jù)消失問題,可以在vuex用Storage),

下面介紹用localStorage來存儲:

在登錄請求成功后,會返回一個token值,用loaclStorage保存

localStorage.setItem('token',res.data.token)

在main.js中設(shè)置全局請求頭和響應(yīng)回來的判斷

//設(shè)置axios請求頭加入token
Axios.interceptors.request.use(config => { 
 if (config.push === '/') { 
  } else { 
   if (localStorage.getItem('token')) { 
     //在請求頭加入token,名字要和后端接收請求頭的token名字一樣 
     config.headers.token=localStorage.getItem('token');  
   } 
  } 
   return config; 
 }, 
 error => { 
  return Promise.reject(error);
 });

//=============================
//響應(yīng)回來token是否過期
Axios.interceptors.response.use(response => { 
  console.log('響應(yīng)回來:'+response.data.code) 
  //和后端token失效返回碼約定403 
  if (response.data.code == 403) {
    // 引用elementui message提示框  
    ElementUI.Message({  
     message: '身份已失效', 
     type: 'err'  
     });
    //清除token 
    localStorage.removeItem('token ');
    //跳轉(zhuǎn)  
    router.push({name: 'login'}); 
   } else { 
     return response 
   } 
  }, 
 error => { 
  return Promise.reject(error); 
  })

在router中的index設(shè)置全局守衛(wèi)來判斷是否存在token,不存在就返回登錄頁

router.beforeEach((to, from, next) => {
//to到哪兒 from從哪兒離開 next跳轉(zhuǎn) 為空就是放行 
 if (to.path === '/') {
 //如果跳轉(zhuǎn)為登錄,就放行 
 next(); 
 } else {
 //取出localStorage判斷
  let token = localStorage.getItem('token ');   
  if (token == null || token === '') { 
    console.log('請先登錄')  
    next({name: 'login'});
   } else {
     next(); 
   } 
}});

補充知識:Vue獲取并存儲服務(wù)器返回的AuthorizationToken信息并給每次請求添加上token

由于后臺是用jwt的token進行身份權(quán)限驗證,后臺在登錄后把token添加響應(yīng)頭里,所以前臺需要把這個token存放起來,并給每次請求的請求頭添加上token,服務(wù)器才能獲取token進行身份認證。

前臺使用vue項目:

loging.vue(登錄組件)

{
 submitForm(formName) {
 this.$axios
  .post('/api/admin/login', {
  userName: this.ruleForm.userName,
  password: this.ruleForm.password
  })
  .then(successResponse => {
  this.responseResult = JSON.stringify(successResponse.data)
  this.msg = JSON.stringify(successResponse.data.msg)
  if (successResponse.data.code === 200) {
  this.msg='';
  localStorage.setItem('userName',this.ruleForm.userName);
  //獲取并存儲服務(wù)器返回的AuthorizationToken信息
  var authorization=successResponse.headers['authorization'];
  localStorage.setItem('authorization',authorization);
  //登錄成功跳轉(zhuǎn)頁面
  this.$router.push('/dashboard');
  
  }
  })
  .catch(failResponse => {})
 }
 }

main.js(全局配置js):

//自動給同一個vue項目的所有請求添加請求頭
axios.interceptors.request.use(function (config) {
 let token = localStorage.getItem('authorization');
 if (token) {
 config.headers['Authorization'] = token;
 }
 return config;
})

這里還需要考慮token過期失效的問題,博主將會在后續(xù)另寫博客補充。

以上這篇Vue中登錄驗證成功后保存token,并每次請求攜帶并驗證token操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • element使用自定義icon圖標的兩種解決方式

    element使用自定義icon圖標的兩種解決方式

    因為安裝原型圖設(shè)計實現(xiàn)頁面,在element自帶的圖標庫好像沒有,所以按鈕的圖標icon需要自定義,下面這篇文章主要給大家介紹了關(guān)于element使用自定義icon圖標的兩種解決方式,需要的朋友可以參考下
    2022-07-07
  • Vue實現(xiàn)跑馬燈樣式文字橫向滾動

    Vue實現(xiàn)跑馬燈樣式文字橫向滾動

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)跑馬燈樣式文字橫向滾動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Vue中插入HTML代碼的方法

    Vue中插入HTML代碼的方法

    這篇文章主要介紹了Vue中插入HTML代碼的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 快速解決 keep-alive 緩存組件中定時器干擾問題

    快速解決 keep-alive 緩存組件中定時器干擾問題

    文章介紹了在使用keep-alive緩存組件時,如何在組件被緩存后清理定時器以避免干擾其他組件的邏輯,通過在deactivated鉤子中清理定時器,可以確保組件被緩存時不會繼續(xù)運行定時器,感興趣的朋友一起看看吧
    2025-02-02
  • Electron主進程(Main?Process)與渲染進程(Renderer?Process)通信詳解

    Electron主進程(Main?Process)與渲染進程(Renderer?Process)通信詳解

    這篇文章主要介紹了Electron主進程(Main?Process)與渲染進程(Renderer?Process)通信,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue3中vuex的基本使用方法實例

    Vue3中vuex的基本使用方法實例

    Vuex是一個專為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式,它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化,下面這篇文章主要給大家介紹了關(guān)于Vue3中vuex的基本使用方法,需要的朋友可以參考下
    2022-04-04
  • 淺析Vue為什么需要同時使用Ref和Reactive

    淺析Vue為什么需要同時使用Ref和Reactive

    這篇文章主要想來和大家一起探討一下Vue為什么需要同時使用Ref和Reactive,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-08-08
  • ElementUI中兩個Select選擇聯(lián)動效果實現(xiàn)方法

    ElementUI中兩個Select選擇聯(lián)動效果實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于ElementUI中兩個Select選擇聯(lián)動效果實現(xiàn)的相關(guān)資料,在前端項目開發(fā)中,經(jīng)常會遇到省市縣三級聯(lián)動的下拉列表框組的問題,需要的朋友可以參考下
    2023-08-08
  • vue-cli2 構(gòu)建速度優(yōu)化的實現(xiàn)方法

    vue-cli2 構(gòu)建速度優(yōu)化的實現(xiàn)方法

    這篇文章主要介紹了vue-cli2 構(gòu)建速度優(yōu)化的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • vue自定義組件search-box示例詳解

    vue自定義組件search-box示例詳解

    這篇文章主要介紹了vue自定義組件search-box,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05

最新評論

凤山县| 彭山县| 合山市| 寻甸| 乌拉特中旗| 六枝特区| 黄大仙区| 绵竹市| 长武县| 衡山县| 桐庐县| 黄平县| 伊川县| 赣州市| 曲松县| 当涂县| 四子王旗| 泸溪县| 阿坝县| 襄汾县| 邵阳市| 金华市| 东莞市| 类乌齐县| 同仁县| 晋江市| 郓城县| 许昌县| 屯昌县| 迁西县| 库伦旗| 安达市| 环江| 湘西| 区。| 读书| 松桃| 简阳市| 中牟县| 准格尔旗| 铜川市|