vue无感刷新

干前端工作也有一小段时间了。这不,研究了下vue项目里的无感刷新。可能有经验的大佬都知道也会敲。大佬就略过吧。
vue无感刷新,大致的原理就是后端返回两个token给前端。(一个是请求的token,另一个是到期或者快到期后换取新token的那个token)

javascript 复制代码
import axios from 'axios'
import { MessageBox, Message } from 'element-ui'

//业务请求的接口
const service = axios.create({
    baseURL: process.env.VUE_APP_BASE_API, 
    timeout: 5000 // request timeout
})

//freshToken 就是当前token过期后到后端再次换取新token的接口
const freshToken = axios.create({
    baseURL: process.env.VUE_APP_BASE_API,
    timeout: 5000
})
//上面两个 service freshToken 虽然两个都是一样,但是有区别的,下面会用到





// 请求前的参数,一般我们的请求头都是在这儿设置
service.interceptors.request.use(
    (config) => {
        let token = localStorage.getItem("token")
        config.headers.Authorization = token
        return config
    },
    (error) => {
        //请求出错的处理
    }
)

//响应拦截器
service.interceptors.response.use(
    (response) => {
        //响应成功后的处理(也就是业务请求成功后的处理)
    },

    //敲黑板在这儿,重点
    async(error) => {
        //首先判断当前token是否过期,如果过期就走下面的if
        //freshToken函数也就是上面定义的换取新token的接口
        if (error.response.status == '401') {
            let newTookenObj = await freshToken({
                method: 'get',
                url: '/api/login/getNewToken'
            })
            //newTookenObj新的token
            //这儿还有一个就是换取新token之后,重新保存。
            return (error.response.config) //记住这儿一定要返回出去,也就是重新走之前请求没走完的业务
        }
    }
)

export default service
相关推荐
有梦想的程序星空11 小时前
【环境配置】Vue3项目离线化本地部署echarts全攻略
前端·javascript·vue·echarts
向日的葵00621 小时前
vue路由(二)
前端·javascript·vue.js·vue
小妖6662 天前
Hydration completed but contains mismatches
javascript·vue·vuepress
lianyinghhh2 天前
FlowGame 从零上手:开源 AI 工作流编排框架与 Vue 3 接入实战
python·低代码·开源·vue·rag·flowgame·ai工作流编排
爱编程的小金2 天前
告别手写分页逻辑:usePagination 从 50 行到 3 行
javascript·vue·前端分页·alova·usepagination
ok406lhq2 天前
用 MonkeyCode 8 小时搭建自动化内容站:AI Coding 平台实战复盘
ci/cd·vue·ai编程·自动化部署·monkeycode
brycegao3213 天前
Tauri2+Vue3+Ollama 实战|依托 AI 协同开发全离线隐私记账桌面软件(开源)
人工智能·开源·vue·ai编程·tauri·ollama·桌面开发
向日的葵0063 天前
快速了解vue中的路由如何实现(路由一)
前端·vue.js·vue·路由
暗冰ཏོ3 天前
《uni-app 跨端开发完整指南:从基础入门到 H5、小程序、App 发布上线》
前端·小程序·uni-app·vue·html5
文阿花4 天前
大屏地图实现方案之-高德(二)
vue·地图·高德