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

Vue3中的Token失效攔截處理方式

 更新時間:2024年08月30日 14:45:01   作者:velpro_!  
這篇文章主要介紹了Vue3中的Token失效攔截處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Vue3 Token失效攔截處理

Token的有效性可以保持一段時間,如果用戶一段時間不做任何操作,Token就會失效,使用失效的Token再去請求一些接口,接口就會報錯,所以需要我們做一些處理

1. 在響應(yīng)攔截器里面攔截這個錯誤

2. 攔截到后需要做的事:  

  • 1)應(yīng)清除掉過期的用戶信息  
  • 2) 跳轉(zhuǎn)到登錄頁
// utils/http.js
import axios from "axios";
import {useUserStore} from "@/stores/user";
import router from '@/router'
const httpInstance = axios.create({
    baseURL: 'url',  // 基地址
    timeout: 5000    // 超時器
})
 
//攔截器
httpInstance.interceptors.request.use(config => {
    return config
}, e => Promise.reject(e))
 
//響應(yīng)器
httpInstance.interceptors.response.use(res => res.data, e => {
    const userStore = useUserStore()  //pinia管理的用戶數(shù)據(jù)
    // 401 token失效處理
    // 1. 清除本地用戶數(shù)據(jù)
    // 2.跳轉(zhuǎn)到登錄頁
    if (e.response.status === 401) {
        userStore.clearUserInfo() 
        // userStore.userInfo = {}
        router.push('/login')
    }
    return Promise.reject(e)
})
export default httpInstance

Vue axios 響應(yīng)攔截 token失效導(dǎo)致出現(xiàn)多個提示框的

// 響應(yīng)攔截器 
let isToken=false
request.interceptors.response.use((res)=>{  
    // 沒錯誤返回200  錯誤·攔截  
    if (res.data.code ===200) {
        return res;
    }else if (res.data.code === 404){
        router.push('/login')
    }else if(res.data.code === 10020){
        // 防止失效導(dǎo)致出現(xiàn)多個提示框的解決辦法
        if(!isToken){
            isToken=true
            window.localStorage.removeItem('user')
            router.push('/login')   
            setTimeout(()=>{
                isToken=false
            },2000)
            return Message.warning(res.data.message)&&Promise.reject(res.data.message); 
        } 
    } 
},)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • ElementUI radio組件選中小改造

    ElementUI radio組件選中小改造

    這篇文章主要介紹了ElementUI radio組件選中小改造,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 詳解Vue實戰(zhàn)指南之依賴注入(provide/inject)

    詳解Vue實戰(zhàn)指南之依賴注入(provide/inject)

    這篇文章主要介紹了詳解Vue實戰(zhàn)指南之依賴注入(provide/inject),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • vue中關(guān)于element的el-image 圖片預(yù)覽功能增加一個下載按鈕(操作方法)

    vue中關(guān)于element的el-image 圖片預(yù)覽功能增加一個下載按鈕(操作方法)

    這篇文章主要介紹了vue中關(guān)于element的el-image 圖片預(yù)覽功能增加一個下載按鈕,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • element-plus中el-table點擊單行修改背景色方法

    element-plus中el-table點擊單行修改背景色方法

    這篇文章主要給大家介紹了關(guān)于element-plus中el-table點擊單行修改背景色的相關(guān)資料,這是產(chǎn)品新加了的一個需求,分享給同樣遇到這個需求的朋友,需要的朋友可以參考下
    2023-07-07
  • 在vue中實現(xiàn)禁止屏幕滾動,禁止屏幕滑動

    在vue中實現(xiàn)禁止屏幕滾動,禁止屏幕滑動

    這篇文章主要介紹了在vue中實現(xiàn)禁止屏幕滾動,禁止屏幕滑動,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue.set與this.$set的用法與使用場景介紹

    Vue.set與this.$set的用法與使用場景介紹

    Vue.set()和this.$set()這兩個api的實現(xiàn)原理基本一模一樣,都是使用了set函數(shù),下面這篇文章主要給大家介紹了關(guān)于Vue.set與this.$set的用法與使用場景,需要的朋友可以參考下
    2022-03-03
  • 詳解vue中axios的封裝

    詳解vue中axios的封裝

    這篇文章大家分享了vue中axios的封裝的相關(guān)知識點以及實例代碼,有興趣的朋友參考學(xué)習(xí)下。
    2018-07-07
  • vue項目實現(xiàn)面包屑導(dǎo)航

    vue項目實現(xiàn)面包屑導(dǎo)航

    這篇文章主要為大家詳細介紹了vue項目實現(xiàn)面包屑導(dǎo)航,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue一個案例引發(fā)的遞歸組件的使用詳解

    Vue一個案例引發(fā)的遞歸組件的使用詳解

    這篇文章主要介紹了Vue一個案例引發(fā)的遞歸組件的使用,本文主要給大家展示如何在項目中使用遞歸組件,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • 完美解決axios跨域請求出錯的問題

    完美解決axios跨域請求出錯的問題

    下面小編就為大家分享一篇完美解決axios跨域請求出錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02

最新評論