久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

vue中token用法是什么

vue中token是在服務端產生的一串字符串,以作客戶端進行請求的一個令牌;其使用方法如:1、封裝操作localstorage本地存儲的方法;2、在封裝好storage后,將其掛載到全局組件中;3、在“request.js”里放入“token”;4、在router下的“index.vue”里設置路由守衛即可。

vue中token用法是什么

本教程操作環境:Windows10系統、vue3版、DELL G3電腦

vue中token用法是什么?Vue中如何使用token

一.了解用法
1.了解(session,cookie)token
Token的引入:Token是在客戶端頻繁向服務端請求數據,服務端頻繁的去數據庫查詢用戶名和密碼并進行對比,判斷用戶名和密碼正確與否,并作出相應提示,在這樣的背景下,Token便應運而生。
token 是在服務端產生的一串字符串,以作客戶端進行請求的一個令牌。如果前端使用用戶名/密碼向服務端請求認證,服務端認證成功,那么在服務端會返回 Token 給前端。前端可以在每次請求的時候帶上 Token 證明自己的合法地位。如果這個 Token 在服務端持久化(比如存入數據庫),那它就是一個永久的身份令牌(除非設置了有效期)。

2.token 優點
Token 完全由應用管理,所以它可以避開同源策略
Token 可以避免 CSRF 攻擊
Token 可以是無狀態的,可以在多個服務間共享
減輕服務器的壓力,減少頻繁的查詢數據庫,使服務器更加健壯。
1、第一次登錄的時候,前端調后端的登陸接口,發送用戶名和密碼

2、后端收到請求,驗證用戶名和密碼,驗證成功,就給前端返回一個token

3、前端拿到token,將token存儲到localStorage和vuex中,并跳轉路由頁面

4、前端每次跳轉路由,就判斷 localStroage 中有無 token ,沒有就跳轉到登錄頁面,有則跳轉到對應路由頁面

5、每次調后端接口,都要在請求頭中加token

6、后端判斷請求頭中有無token,有token,就拿到token并驗證token,驗證成功就返回數據,驗證失敗(例如:token過期)就返回401,請求頭中沒有token也返回401

7、如果前端拿到狀態碼為401,就清除token信息并跳轉到登錄頁面

二.實際使用
1.封裝一個本地緩存的方法
在src下新建一個storage文件夾,文件夾里新建index.vue
代碼如下:

// 封裝操作localstorage本地存儲的方法  模塊化  var storage = {   set(key, value) {     localStorage.setItem(key, JSON.stringify(value))   },   get(key) {     return localStorage.getItem(key) != 'undefined' ? JSON.parse(localStorage.getItem(key)) : undefined  },   getForIndex(index) {     return localStorage.key(index)   },   getKeys() {     let items = this.getAll()     let keys = []     for (let index = 0; index < items.length; index++) {       keys.push(items[index].key)     }     return keys  },   getLength() {     return localStorage.length  },   getSupport() {     return (typeof (Storage) !== 'undefined')   },   remove(key) {     localStorage.removeItem(key)   },   removeAll() {     localStorage.clear()   },   getAll() {     let len = localStorage.length // 獲取長度    let arr = new Array(len) // 定義數據集    for (var i = 0; i < len; i++) {       // 獲取key 索引從0開始       var getKey = localStorage.key(i)       // 獲取key對應的值       var getVal = localStorage.getItem(getKey)       // 放進數組       arr[i] = {         'key': getKey,        'val': getVal      }     }     return arr  }}export default storage
登錄后復制

2.封裝好storage后,把他掛載到全局組件中
打開src下的main.js
加上一句代碼:

Vue.prototype.$storage = storage;
登錄后復制

3.在request.js里放入token
至于request是什么,具體可以參考另一篇文檔:“Vue如何成功調用一個動態數據接口+解決跨域問題”:該文檔鏈接點擊跳轉
其中的方法二具體描述了request.js

每次跳轉路由前,判斷 localStroage(或vuex) 中有無 token,或者是否過期(可以寫在封裝Axios的請求攔截器中或者router的路由守衛中)
request.js代碼如下

import axios from 'axios'import storage from '@/storage'import router from '@/router'// create an axios instance const service = axios.create({   baseURL: '/api', // url = base url + request url   timeout: 5000 // request timeout})// 添加請求攔截器,若token存在則在請求頭中加token,不存在也繼續請求 service.interceptors.request.use(   config => {     // 每次發送請求之前檢測都vuex存有token,那么都要放在請求頭發送給服務器,沒有則不帶token     // Authorization是必須的    let tokenInfo = storage.get('TOKEN')     const token = tokenInfo ? tokenInfo.accessToken : null     const tokenType = token ? tokenInfo.tokenType.substring(0, 1).toUpperCase() + tokenInfo.tokenType.substring(1) + ' ' : null    if (token && tokenType) {       config.headers.Authorization = tokenType + token    }     return config  },   error => {     console.log('在request攔截器檢查到錯誤:', error.response)     return Promise.reject(error)   })// respone攔截器 service.interceptors.response.use(   response => {     return response  },   error => {     // 在status不正確的情況下,判別status狀態碼給出對應響應    if (error.response) {       console.log('在respone攔截器檢查到錯誤:')       switch (error.response.status) {         case 204:           error.response.data.error = '204:No Content(沒有內容)'           break         case 401:           // 可能是token過期,清除它           storage.remove('tokenInfo')           location.reload() // 刷新頁面,觸發路由守衛           error.response.data.error = '401:Unauthorized(未經授權)'           break         case 403:           error.response.data.error = '403:Forbidden(被禁止的)'           break         case 500:           error.response.data.error = '500:服務器內部錯誤'           break         default:          return error      }       return Promise.reject(error.response.data.error)     }      return Promise.reject(error)   })export default service
登錄后復制

4.在路由,router下的index.vue里設置路由守衛
整個index代碼如下:

import Vue from 'vue'import Router from 'vue-router'import Login from '@/views/login';import Main from '@/main/index';import tip1 from '@/views/tip1';import tip2 from '@/views/tip2';import tip3 from '@/views/tip3';import storage from '@/storage'Vue.use(Router)const routes = [{     path: '/',     name: 'Login',     // redirect: '/login',     component: Login,  },  {     path: "/login",     component: Login,  },  {     path: '/Main',     component: Main,     children: [{         path: '/',         name: 'Tip1',         component: tip1      },      {         path: '/tip1',         name: 'Tip1',         component: tip1      },      {         path: '/tip2',         name: 'Tip2',         component: tip2,         meta: {           requireAuth: true         }       },      {         path: '/tip3',         name: 'Tip3',         component: tip3      },    ]   }]const router = new Router({   routes})// 設置路由守衛,在進頁面之前,判斷有token,才進入頁面,否則返回登錄頁面 router.beforeEach((to, from, next) => {   // 默認requiresAuth為false才不需要登錄,其他都要   // to.matched.some(r => r.meta.requireAuth) or to.meta.requiresAuth  if (to.matched.some(r => r.meta.requireAuth) !== false) {     let tokenInfo = storage.get('TOKEN')     if (tokenInfo) {       console.log("有token")       next();      } else {       storage.remove('TOKEN')       next({         path: "/login",         query: {           redirect: to.fullPath        } // 將剛剛要去的路由path(卻無權限)作為參數,方便登錄成功后直接跳轉到該路由      });     }    } else {     next(); //如果無需token,那么隨它去吧  }});//暴露router實例export default router // 1.將調用登錄接口成功以后,把后端傳過來的token放入本地緩存 // 2.路由跳轉之前執行路由守衛,實例化一個Router對象,使用該對象內置方法beforeEach,在路由跳轉前判斷該頁面是否設置了token,獲取token // 如果有token,next()繼續執行路由跳轉 // 如果沒有token,跳轉去登錄界面
登錄后復制

哪個頁面需要路由守衛。就給他加上參數

meta: {           requireAuth: true         }
登錄后復制

推薦學習:《vue視頻教程》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
美女毛片一区二区三区四区最新中文字幕亚洲| 99视频精品全国免费| 欧洲激情综合| 九一精品国产| 另类亚洲自拍| 亚洲精选av| av一区二区高清| 99亚洲精品| 午夜精品影视国产一区在线麻豆| 蜜桃视频一区二区三区 | 综合激情在线| 国产色噜噜噜91在线精品| 国产精品v一区二区三区| 国产精品99一区二区三| 国产主播一区| 在线观看一区| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 欧美精品高清| 一级成人国产| 成人国产精选| 久热综合在线亚洲精品| 国产欧美大片| 99精品一区| 国产精品资源| av成人国产| 久草精品视频| 在线日韩电影| 欧美日韩xxxx| 91欧美在线| **爰片久久毛片| 99久久亚洲精品蜜臀| 日韩av一区二区在线影视| 神马久久午夜| 国产日韩中文在线中文字幕| 激情婷婷欧美| 精品视频一区二区三区四区五区| 久久久人人人| 91精品国产一区二区在线观看| 久久国产日本精品| 国产欧美日韩影院| 亚洲深夜福利| 欧美性感美女一区二区| 里番精品3d一二三区| 久久人人精品| 国产亚洲精品精品国产亚洲综合| 日韩一区三区| 久久亚洲黄色| 亚洲精品九九| 日韩影院精彩在线| 成人看片网站| 欧美aa在线视频| 久久午夜影视| 亚洲一级高清| 日韩精品第一区| 国产精品久久久久久久久久久久久久久| 亚洲在线免费| 亚洲成人免费| 欧美不卡高清| 国产高潮在线| 精品视频高潮| 成人国产精品一区二区免费麻豆| 91av一区| 国产亚洲第一伦理第一区| 中文字幕中文字幕精品| 亚洲制服一区| 日日夜夜免费精品视频| 日本特黄久久久高潮| 国产欧美欧美| 精品一区二区三区中文字幕在线| 亚洲色图国产| 欧美天堂在线| 国产一区二区三区不卡视频网站| 精品国产亚洲一区二区三区在线| 欧美性www| 成午夜精品一区二区三区软件| 国产成人精选| 在线国产一区二区| 男女男精品网站| 国产精品手机在线播放| 伊人久久视频| 99久久九九| 午夜日本精品| 日韩精品欧美大片| 国产三级精品三级在线观看国产| 欧美亚洲免费| 国产亚洲一区二区三区啪| 久久av电影| 视频福利一区| 亚洲调教视频在线观看| 欧美三级精品| 亚洲三级av| 精品视频一二| 蜜臀久久99精品久久久久宅男 | 老鸭窝一区二区久久精品| 色婷婷狠狠五月综合天色拍| 国产精品毛片| 久久精品色播| 亚洲一区二区三区无吗| 视频在线不卡免费观看| 日韩中文字幕一区二区高清99| 极品av在线| 亚欧洲精品视频在线观看| 日本不卡免费高清视频在线| 日韩在线黄色| 尤物在线精品| 成人台湾亚洲精品一区二区| 国产精品美女久久久| 国产精品99久久免费| 日韩一区二区三区免费播放| 国产美女亚洲精品7777 | 亚洲精品一二| 免费日韩成人| 99在线精品免费视频九九视| 九九99久久精品在免费线bt| 视频在线观看91| 久久国产影院| 日韩免费福利视频| 亚洲97av| 国产精品88久久久久久| 日韩精品久久久久久久软件91| 久久久免费人体| 日韩一区二区三区四区五区| 福利一区和二区| 国产亚洲一卡2卡3卡4卡新区| 一区二区三区视频免费观看| 国产精品成人a在线观看| 免费日韩av片| 美女网站久久| 中文字幕免费一区二区| 99亚洲精品| 最新亚洲一区| 免费观看在线色综合| 老色鬼久久亚洲一区二区| 日韩亚洲国产欧美| 性一交一乱一区二区洋洋av| 一本色道精品久久一区二区三区| 国产精成人品2018| 欧美亚洲三级| 国产高清亚洲| 福利一区和二区| 日韩在线免费| 亚洲一区日韩| 97久久超碰| 欧美男人天堂| 久久中文字幕av| 好吊日精品视频| 日本不卡视频在线| 精品一区二区三区中文字幕视频| 久久影院午夜精品| 好吊一区二区三区| 日韩欧美另类中文字幕| 欧美91在线| 久久电影一区| 美女精品一区二区| 日韩一级不卡| 久久精品99久久久| 99精品网站| 国产精品igao视频网网址不卡日韩 | 偷拍精品精品一区二区三区| 亚洲激情中文| 国产精品66| 91九色精品国产一区二区| 亚洲一区二区日韩| 高清av不卡| 欧美日韩a区| 99在线精品视频在线观看| 麻豆久久久久久| 天使萌一区二区三区免费观看| 欧美日韩视频免费看| 国产成人1区| 四虎在线精品| 国产一区二区高清| 日韩在线短视频| 麻豆精品新av中文字幕| 蜜臀av亚洲一区中文字幕| 色老板在线视频一区二区| 国产亚洲人成a在线v网站| 亚洲一区日韩| 99国产一区| 黄色不卡一区| 91精品一区国产高清在线gif| 欧美粗暴jizz性欧美20| 精品在线网站观看| 国产精品magnet| 日本欧洲一区二区| 国产一区成人| 欧美午夜不卡| 亚洲男女自偷自拍| 一区在线免费观看| 91精品国产调教在线观看 | 国模 一区 二区 三区| www在线观看黄色| 国产中文欧美日韩在线 | 在线 亚洲欧美在线综合一区| 日韩伦理福利| 国产在线|日韩| 国产日韩精品视频一区二区三区| 九色porny丨国产首页在线| 亚洲精品乱码久久久久久蜜桃麻豆 | 捆绑调教日本一区二区三区|