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

vue中對token有效期的深入理解

 更新時間:2023年07月31日 09:18:42   作者:梔椩  
本文主要介紹了vue中對token有效期的深入理解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

保持登錄是每個web頁面必須要做的,不能一直不停的讓用戶進行登錄,也不能讓用戶不登錄就直接進入頁面。token在保持登錄中起到了非常重要的作用,我之前寫過一篇博客,vue存儲和使用后端傳遞過來的token,這篇博客詳細的說明了后端如何向前端傳遞token,前端如何將token保存在localstorage中,并通過請求攔截的方式判斷token是否過期。我不確定這么寫是否真的能起到作用,因為我后面寫代碼的時候,我發(fā)現(xiàn)我后端明明設定的token的有效期是10個小時,而本地localstorage中還一直有這個token并沒有清除。于是想了個辦法,在路由守衛(wèi)這個環(huán)節(jié)設置token的有效期,并進行驗證。記錄一下。

前端新設置一個token的有效期

代碼寫在路由處理文件中(router/index.js)

// 路由守衛(wèi)
import jwt_decode from 'jwt-decode'
router.beforeEach((to, from, next) => {
? const EXPIRESTIME = 86400 ?
? const isLogin = localStorage.mytoken ? true : false;
? if (isLogin){
? ? const decode = jwt_decode(localStorage.mytoken)
? ? const date = parseInt(new Date().getTime() / 1000)
? ? if ((date - decode.iat) > EXPIRESTIME){
? ? ? localStorage.removeItem('mytoken')
? ? ? next("/login");
? ? }
? }
? if (to.path == "/login" || to.path == "/register") {
? ? next();
? } else {
? ? isLogin ? next() : next("/login");
? }
});

上面的代碼可以看出,我設定了一個有效期EXPIRESTIME = 86400,也就是246060一天的時間

如果本地存儲了token的話,我就對這個token進行解碼,獲得這個token的創(chuàng)建時間iat,并與當前時間new Date().getTime()進行比較,注意這里有個坑,當前時間是int型數(shù)據(jù),單位是毫秒,而iat雖然也是int型數(shù)據(jù),但單位是秒,所以我把當前時間除以1000再比較

如果超過了這個有效期,就清除這個token,然后重定向至登錄頁面

后面的路由守衛(wèi)比較簡單,就是正常的放行規(guī)則了

仍然使用后端token的有效期

我想來想去,還是覺得上面的思路有點不正常

既然后端已經(jīng)設置了有效期,為啥前端還要這么操作呢,可能自己對全棧的理解還是不到位,我又重新看了一下自己大半個月前寫的那篇博客,我覺得這個做法應該是科學可行的,還是把代碼上上來

import axios from "axios";
import { Message, Loading } from 'element-ui';
import router from "./router"
let loading;
function startLoading(){
? ? loading = Loading.service({
? ? ? ? lock: true,
? ? ? ? text: '數(shù)據(jù)加載中',
? ? ? ? background: 'rgba(0,0,0,0.7)'
? ? })
}
function endLoading(){
? ? loading.close();
}
// 請求攔截
axios.interceptors.request.use(config => {
? ? startLoading();
? ? if(localStorage.eleToken){
? ? ? ? // 設置統(tǒng)一的請求頭
? ? ? ? config.headers.Authorization = localStorage.eleToken
? ? }
? ? return config
}, error => {
? ? return Promise.reject(error)
})
//響應攔截
axios.interceptors.response.use(response => {
? ? endLoading();
? ? return response
}, error => {
? ? // 錯誤提醒
? ? endLoading();
? ? Message.error(error.response.data)
? ? // 獲取錯誤狀態(tài)碼
? ? const {status} = error.response
? ? if(status == 401){
? ? ? ? Message.error("token失效,請重新登錄")
? ? ? ? localStorage.removeItem('eleToken')
? ? ? ? router.push('/login')
? ? }
? ? return Promise.reject(error)
})
export default axios

這個代碼相當于是對axios進行了二次封裝,有很重要的兩點:

  • 請求攔截時,把token寫進請求頭中
  • 頁面響應時,判斷token是否失效,失效的狀態(tài)碼為401,一旦監(jiān)測到出現(xiàn)了401的錯誤碼,就說明token過期了,刪除、重定向

我懶得去驗證這是不是正確的了,但是我覺得應該沒啥問題

到此這篇關(guān)于vue中對token有效期的深入理解的文章就介紹到這了,更多相關(guān)vue token有效期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3 插槽Slot指南及使用舉例

    Vue3 插槽Slot指南及使用舉例

    插槽(Slot)是 Vue 提供的一個強大的內(nèi)容分發(fā)機制,允許父組件向子組件注入內(nèi)容,它使得組件更加靈活和可復用,這篇文章主要介紹了Vue3 插槽Slot指南及使用舉例,需要的朋友可以參考下
    2025-05-05
  • 探索Vue.js component內(nèi)容實現(xiàn)

    探索Vue.js component內(nèi)容實現(xiàn)

    這篇文章主要和大家一起探索Vue.js component內(nèi)容實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • uni-app 使用編輯器創(chuàng)建vue3 項目并且運行的操作方法

    uni-app 使用編輯器創(chuàng)建vue3 項目并且運行的操作方法

    這篇文章主要介紹了uni-app 使用編輯器創(chuàng)建vue3 項目并且運行的操作方法,目前uniapp 創(chuàng)建的vue3支持 vue3.0 -- 3.2版本 也就是說setup語法糖也是支持的,需要的朋友可以參考下
    2023-01-01
  • 在VUE中實現(xiàn)文件下載并判斷狀態(tài)的方法

    在VUE中實現(xiàn)文件下載并判斷狀態(tài)的方法

    今天小編就為大家分享一篇在VUE中實現(xiàn)文件下載并判斷狀態(tài)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue.js事件處理器與表單控件綁定詳解

    Vue.js事件處理器與表單控件綁定詳解

    這篇文章主要為大家詳細介紹了Vue.js事件處理器與表單控件綁定詳解的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 淺談vue的iview列表table render函數(shù)設置DOM屬性值的方法

    淺談vue的iview列表table render函數(shù)設置DOM屬性值的方法

    下面小編就為大家?guī)硪黄獪\談vue的iview列表table render函數(shù)設置DOM屬性值的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Vue如何實現(xiàn)響應式系統(tǒng)

    Vue如何實現(xiàn)響應式系統(tǒng)

    這篇文章給大家整理了關(guān)于Vue如何實現(xiàn)響應式系統(tǒng)的相關(guān)知識點內(nèi)容,有興趣的朋友可以參考學習下。
    2018-07-07
  • vue+Ant?Design進度條滑塊與input聯(lián)動效果實現(xiàn)

    vue+Ant?Design進度條滑塊與input聯(lián)動效果實現(xiàn)

    最近接到這樣一個需求滑塊進度與輸入框為一致,默認值為80,最小不能小于30,最大為100,怎么實現(xiàn)這個聯(lián)動效果呢,下面小編給大家分享下基于vue+Ant?Design進度條滑塊與input聯(lián)動效果的實現(xiàn),感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • vue3+vite+antd如何實現(xiàn)自定義主題

    vue3+vite+antd如何實現(xiàn)自定義主題

    這篇文章主要介紹了vue3+vite+antd如何實現(xiàn)自定義主題問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue實現(xiàn)在進行增刪改操作后刷新頁面

    vue實現(xiàn)在進行增刪改操作后刷新頁面

    這篇文章主要介紹了vue實現(xiàn)在進行增刪改操作后刷新頁面,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評論

高淳县| 汽车| 夏津县| 连江县| 同仁县| 虎林市| 泗水县| 新郑市| 安陆市| 尉氏县| 启东市| 界首市| 高安市| 揭西县| 砀山县| 静乐县| 疏勒县| 天峨县| 绍兴县| 临猗县| 扶风县| 天等县| 高平市| 三原县| 平和县| 怀柔区| 扶风县| 宁城县| 新丰县| 伊宁县| 淮南市| 德阳市| 昌江| 东兰县| 探索| 嘉善县| 祥云县| 报价| 舞钢市| 盈江县| 河间市|