如何通过axios拦截器,给除了登录请求以外,axios的所有异步请求添加JWT令牌!
在 Vue 项目中配置除了登录请求以外的所有请求的令牌,通常涉及到在请求头中添加令牌(Token)信息。这可以通过使用 Axios 或其他 HTTP 请求库来实现。以下是一般的步骤:
1. **安装 Axios**:
如果你还没有安装 Axios,可以使用以下命令安装它:
```bash
npm install axios
```
2. **创建 Axios 实例**:
你可以创建一个全局的 Axios 实例,并在该实例中配置请求拦截器,以在每个请求中添加令牌信息。
```javascript
// main.js 或其他入口文件import Vue from 'vue' import App from './App.vue' import router from "@/router/router" import element from 'element-ui'; import axios from 'axios' import 'element-ui/lib/theme-chalk/index.css'; // 在生产环境中禁用警告信息和启用构建优化 Vue.config.productionTip = false// 创建一个 Axios 实例 const axiosInstance = axios.create({baseURL: 'http://localhost:8080/qy', // 通用后端 Url 地址timeout: 5000, // 请求最大等待时间 })// 添加请求拦截器 axiosInstance.interceptors.request.use((config) => {// 获取请求的URLconst requestUrl = config.url;// 提取URL路径部分/qy/Login...const urlPath = new URL(requestUrl).pathname;// 在请求头中添加令牌信息const jwtToken = localStorage.getItem('jwtToken') // 从本地存储中获取令牌// 检查是否是登录请求,这里假设登录请求的URL是 '/Login'if (urlPath !== '/qy/Login' && urlPath !== '/qy/LogOut') {console.log(urlPath);// 如果不是登录请求,添加令牌到请求头if (jwtToken) {config.headers.Authorization = `${jwtToken}`}}return config},(error) => {return Promise.reject(error)} )// 将 Axios 实例添加到 Vue 原型中,以便在组件中使用 // Vue.prototype.axios axios便在组件中使用如:this.$axios Vue.prototype.axios = axiosInstanceVue.use(element) new Vue({router,render: h => h(App), }).$mount('#app')在上面的代码中,我们创建了一个 Axios 实例 `axiosInstance`,并在请求拦截器中检查本地存储中是否存在令牌,如果存在,则将其添加到请求头中的 `Authorization` 字段中。
```
3. **在需要发送请求的组件中使用 Axios**:
现在,你可以在组件中使用 `$http` 来发送请求,这将包括令牌信息。
```javascript
// 在组件中发送请求this.$http.get('/api/some-endpoint').then((response) => {// 处理响应}).catch((error) => {// 处理错误})
```
4. **登录时设置令牌**:
在用户登录成功后,你需要将令牌保存到本地存储中(或者使用 Vuex 管理),以便在后续请求中使用。
```javascript
// 在登录成功后保存令牌到本地存储
localStorage.setItem('token', 'your_token_here')
```
实际情况可能会因项目的需求而有所不同。还需要确保在用户登录后、注销时、令牌过期时等情况下进行适当的令牌管理和更新。
此外,安全性也是非常重要的,令牌应该以安全的方式传输和存储,并且需要考虑令牌的有效期管理。
相关文章:
如何通过axios拦截器,给除了登录请求以外,axios的所有异步请求添加JWT令牌!
在 Vue 项目中配置除了登录请求以外的所有请求的令牌,通常涉及到在请求头中添加令牌(Token)信息。这可以通过使用 Axios 或其他 HTTP 请求库来实现。以下是一般的步骤: 1. **安装 Axios**: 如果你还没有安装 Axios&a…...
Spring学习笔记9 SpringIOC注解式开发
Spring学习笔记8 Bean的循环依赖问题_biubiubiu0706的博客-CSDN博客 注解的存在主要是为了简化XML的配置.Spring6倡导全注解式开发 回顾下 注解怎么定义,注解中的属性怎么定义 注解怎么使用 通过反射机制怎么读取注解 注解的自定义 注解的使用 通过反射机制怎么读取注解 I…...
【新日标习题集】第13課 までのまとめ (discarded)
2. 学校にコンピューターがごだいあります。 这个句子好像有点问题,辞典中没有查到有「ごだい」这个单词 学校里有5台电脑。 5. わたしは英語がよくわかります。 我很懂英语。...
Java基础常考知识点(基础、集合、异常、JVM)
作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言! Java基础常考知识点…...
虚拟机桥接模式下没有无线网卡选项
我以为是雷电模拟器占用了网卡的缘故,但想起之前可能修改了无线网卡的某些内容,于是到网络属性里面查看。 如下所示,原来是之前我不小心把这个红箭头指向的项目取消勾选了。...
设计模式笔记
关于设计模式 1. 如何阅读本文 略 2. 面向对象程序设计简介 2.1 面向对象程序设计基础 面向对象程序设计 (Object-Oriented Programming,缩写为 OOP)是一种范式,其基本理念是将 数据块 及 与数据相关的行为 封装成为特殊的、…...
c==ubuntu+vscode debug redis7源码
新建.vscode文件夹,创建launch.json和tasks.json {"version": "0.2.0","configurations": [{"name": "C/C Launch","type": "cppdbg","request": "launch","prog…...
java字符串储存底层原理
字符串原理:原理1: 内存原理 (1)直接赋值给字符串,会把这个字符串放到常量池里,如果之后出现重复使用这个字符串的,就会直接从这个常量池中去引用,不会再去new一个字符串 (2)new出来的字符串不会重复使用,而是开辟一个新的空间存储原理2: 字符串中的""比较的是什么?…...
c++获取当前时间的字符串
代码 void getNowTimePrefix(std::string& prefix) {std::time_t nowTime;struct tm* p new tm;std::time(&nowTime);localtime_s(p, &nowTime);int year p->tm_year 1900;int month p->tm_mon 1;int day p->tm_mday;int hour p->tm_hour;int …...
【精品】通用Mapper 批量更新bug解决方案
问题描述 环境:mysql8.xmybatis3.5.13tk.mybatis4.2.3 在使用tk.mybatis做批量更新时,程序会报错,说是执行的SQL语法错误,经研究源代码发现tk.mybatis在实现批量更新时是通过多次执行update语句实现的。这本身就不符合MySQL批量…...
腾讯mini项目-【指标监控服务重构-会议记录】2023-07-06
7/6 会议记录 Profile4个步骤 解压kafka消息初始化性能事件,分析事件将数据写入kafkaRun 开始执行各stage handler 上报耗时到otel-collector。。。 // ConsumerDispatchHandler consumer // // param msg *sarama.ConsumerMessage // param consumer *databus.K…...
【React】函数式组件和类式组件的用法和逻辑
组件的使用 当应用是以多组件的方式实现,这个应用就是一个组件化的应用 注意: 组件名必须是首字母大写虚拟DOM元素只能有一个根元素虚拟DOM元素必须有结束标签 < /> 渲染类组件标签的基本流程React 内部会创建组件实例对象调用render()得到虚拟 …...
题目 1061: 二级C语言-计负均正
从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值。 保留两位小数 样例输入 1 2 3 4 5 6 7 8 9 10 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 样例输出 10 5.50 解题思路: 如题所示,输入20个正负数,---》求付数的个…...
数位和(C++)
系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…...
[牛客复盘] 牛客周赛round13 20230924
[牛客复盘] 牛客周赛round13 20230924 总结矩阵转置置2. 思路分析3. 代码实现 小红买基金1. 题目描述2. 思路分析3. 代码实现 小红的密码修改1. 题目描述2. 思路分析3. 代码实现 小红的转账设置方式1. 题目描述2. 思路分析3. 代码实现 小红打boss1. 题目描述2. 思路分析3. 代码…...
mybatsi-MyBatis的逆向工程
mybatsi-MyBatis的逆向工程 一、前言二、创建逆向工程的步骤1.添加依赖和插件2.创建MyBatis的核心配置文件3.创建逆向工程的配置文件4.执行MBG插件的generate目标 一、前言 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。 Hibernate是支…...
转转闲鱼交易猫链接源码 支持二维码收款
最新仿二手闲置链接源码 后台一键生成链接,后台管理教程:解压源码,修改数据库config/Congig 不会可以看源码里有教程 下载程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3...
Python爬虫基础(三):使用Selenium动态加载网页
文章目录 系列文章索引一、Selenium简介1、什么是selenium?2、为什么使用selenium3、安装selenium(1)谷歌浏览器驱动下载安装(2)安装selenium 二、Selenium使用1、简单使用2、元素定位3、获取元素信息4、交互 三、Phan…...
Linux系统下安装Mysql
1、执行命令:rpm -qa | grep -i mysql,先查看系统之前是否有安装相关的rpm包,如果有,会显示类似下面的信息; 2、通过命令yum -y remove mysql-* 一次性删除系统上所有相关的rpm包,或者通过命令yum -y …...
Jenkins学习笔记1
CI 服务器: 认识Jenkins: Jenkins是一个可扩展的持续集成(CI)引擎,是一个开源项目,旨在提供一个开放易用的软件平台,使得软件持续集成变成可能。Jenkins非常易于安装和配置,简单易…...
AutoUnipus学习效率工具:提升在线学习体验的智能辅助方案
AutoUnipus学习效率工具:提升在线学习体验的智能辅助方案 【免费下载链接】AutoUnipus U校园脚本,支持全自动答题,百分百正确 2024最新版 项目地址: https://gitcode.com/gh_mirrors/au/AutoUnipus 在数字化学习环境中,学生常面临在线课程任务繁重…...
Pixel Script Temple部署教程:ARM服务器(如NVIDIA Grace)上Qwen2.5量化部署
Pixel Script Temple部署教程:ARM服务器(如NVIDIA Grace)上Qwen2.5量化部署 1. 项目概述 Pixel Script Temple是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它将AI推理能力与8-Bit复古美学相结合,为创作者提供沉…...
告别背包焦虑:TQVaultAE如何彻底改变《泰坦之旅》装备管理体验
告别背包焦虑:TQVaultAE如何彻底改变《泰坦之旅》装备管理体验 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 对于《泰坦之旅》玩家来说,最令人沮丧…...
重构数字桌面:2025年macOS菜单栏管理工具全解析
重构数字桌面:2025年macOS菜单栏管理工具全解析 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 问题溯源:为什么你的菜单栏变成了数字垃圾场? 当我们每天打开Mac…...
一键生成爆炸图:Nano-Banana拆解引擎在产品说明书制作中的应用
一键生成爆炸图:Nano-Banana拆解引擎在产品说明书制作中的应用 1. 产品拆解可视化的行业痛点 在产品说明书、维修手册和教育材料的制作过程中,清晰展示产品内部结构和组件关系是至关重要的。传统方法通常面临三大挑战: 3D建模成本高&#…...
手把手教你用B站NFT工具设置小钻石头像(含最新工具下载与使用指南)
手把手教你用B站NFT工具设置小钻石头像(含最新工具下载与使用指南) 在数字藏品风靡的当下,B站推出的NFT小钻石头像成为了许多用户展示个性的新选择。不同于传统的头像设置,NFT头像不仅具有独特的收藏价值,还能在B站社…...
如何用Untrunc开源工具拯救损坏的视频文件:从理论到实践的完整指南
如何用Untrunc开源工具拯救损坏的视频文件:从理论到实践的完整指南 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc …...
实测雪女-斗罗大陆-造相Z-Turbo:简单几步,让文字描述变成精美动漫图
实测雪女-斗罗大陆-造相Z-Turbo:简单几步,让文字描述变成精美动漫图 1. 模型介绍与准备工作 1.1 什么是雪女-斗罗大陆-造相Z-Turbo 雪女-斗罗大陆-造相Z-Turbo是一款基于Xinference部署的文生图模型服务,专门用于生成斗罗大陆中雪女角色的…...
OpenClaw命令行增强:gemma-3-12b-it解释复杂指令并自动补全
OpenClaw命令行增强:gemma-3-12b-it解释复杂指令并自动补全 1. 为什么需要命令行增强工具 作为一个常年与终端打交道的开发者,我经常遇到这样的困境:记得某个命令的功能,却想不起具体参数;或者面对复杂的管道操作时&…...
STEP3-VL-10B效果对比实测:10B参数碾压GLM-4.6V/Qwen3-VL-Thinking
STEP3-VL-10B效果对比实测:10B参数碾压GLM-4.6V/Qwen3-VL-Thinking 最近多模态大模型圈子里有个消息挺火的:阶跃星辰开源了一个只有10B参数的视觉语言模型STEP3-VL-10B,据说在好几个评测基准上把那些参数量大它10倍甚至20倍的模型都给比下去…...
