vue——接口修改请求头——有些接口不需要请求头传递token——基础积累

news2024/9/29 1:22:44

最近在写后台管理系统的时候,遇到一个切换租户的功能。在请求接口的时候不需要传递token
在这里插入图片描述
直接上代码吧:

1.html代码

login2(this.user.id, this.ruleForm.tenantType)
.then(this.afterLogin)
.finally(() => {
  this.confirmLoading = false;
  if (this.ruleForm.tenantType) {
    localStorage.setItem('tenant', this.ruleForm.tenantType);
    let tenantUserName = '';
    let obj = this.tenantList.find(
      (item) => item.id == this.ruleForm.tenantType
    );
    if (obj) {
      tenantUserName = obj.name;
      localStorage.setItem('tenantUserName', tenantUserName);
    }
  } else {
    localStorage.removeItem('tenant');
    localStorage.removeItem('tenantUserName');
  }
});
afterLogin(res) {
  const loginRes = res;
  if (loginRes) {
    setAuthorization({
      token: loginRes.access_token,
      expireAt: new Date(new Date().getTime() + loginRes.expires_in),
    });
    if (checkAuthorization()) {
      this.$store.dispatch('account/refreshPermissions', (res) => {
        if (res == 'success') {
          this.$message.success('操作成功', 3);
          this.visible = false;
          this.confirmLoading = false;
          location.reload();
        }
      });
    }
  }
},

2.login2接口内容

export async function login2(id, tenant) {
  const params = {
    id
  };
  let config = {
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      Authorization: '',//此处设置了请求token,但是并未生效
    },
  };
  if (tenant) {
    config.headers.__tenant = tenant;//设置请求头
  }
  return request(LOGIN, METHOD.POST, qs.stringify(params), config);
}

3.axios拦截器处理内容

const reqCommon = {
  /**
   * 发送请求之前做些什么
   * @param config axios config
   * @param options 应用配置 包含: {router, i18n, store, message}
   * @returns {*}
   */
  onFulfilled(config, options) {
    const { router, message } = options;
    const { url, xsrfCookieName, headers } = config;
    if (
      headers.Authorization &&
      xsrfCookieName &&
      !Cookie.get(xsrfCookieName)
    ) {
      message.warning('认证 token 已过期,请重新登录');
    }
    if (!headers.__tenant) {//如果有租户的信息,则表示要清空token,然后重新登录
      config.headers['Authorization'] = Cookie.get(xsrfHeaderName);
    } else {
      delete config.headers.Authorization;
    }
    return config;
  },
  //其他内容省略了。。。
}

完成!!!多多积累,多多收获!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/730566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ja3指纹和akamai指纹

问题: 请求失效,带上抓包软件却可以->检测ja3浏览器指纹 方法,python 安装curl_cffi库 pip install curl_cffi 查看浏览器指纹 https://tls.browserleaks.com/json python 原生request 缺少两个指纹 使用curl_cffi之后 可以看到结果…

多模态系列论文--BLIP 详细解析

论文地址:BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 论文代码:https://github.com/salesforce/BLIP BLIP 1 研究动机及本文贡献2 相关工作2.1 ALBEF模型2.2 VLMO模型 3 本文贡献1--U…

LLaMA: Open and Efficient Foundation Language Models

背景 用最少的计算资源,解决了LLM大模型预测问题,训练了一些列的LLaMa模型,在参数量比较少的情况下,达到业界大模型效果。 主要贡献就是提升了LLM模型的训练速度和效率,在小容量的基础上,大大提升了模型的…

C语言 - AES软件加解密算法

概述 (AES)RIJNDAEL算法是一个数据块长度盒密钥长度都可变的分组加密算法,其数据块长度和密钥长度都可独立地选定为大于等于128位且小于等于256位的32位任意倍数。深入学习请参考《密码学》书籍,谢谢各位参阅。 验证环境&#xf…

Git基本操作:版本打Tag的作用以及基本操作流程

作用介绍 在git代码管理时,有时候我们想对某个特定的commit 添加标记,比如要标识版本信息,这时候就可以用的git中的打标签功能。 打tag就类似于我们看书放书签一样,以后可以直接用tag找到提交的位置,不然的话&#x…

devtools热部署的使用

引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency>idea开启热部署 改动后 ctrl …

解决:yarn 无法加载文件 “C:\Users\admin\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本“ 的问题

1、问题描述&#xff1a; 其一、报错的整体代码为&#xff1a; yarn : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\yarn.ps1&#xff0c;因为在此系统上禁止运行脚本 // 整体的报错代码为 &#xff1a; yarn : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\yar…

Django_测试模块(六)

目录 开始写我们的第一个测试 首先得有个 Bug 创建一个测试来暴露这个 bug 运行测试 修复这个 bug 更全面的测试 测试视图 针对视图的测试 Django 测试工具之 Client 改善视图代码 测试新视图 测试 DetailView 集中管理用例文件 使用Django测试运行器 源码等资料…

国风美少女【InsCode Stable Diffusion 美图活动一期】

一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置&#xff1a; Steps&#xff08;采样迭代步数&#xff09;: 20 Sampler&#xff08;采样方法&#xff09;: Euler a 采样迭代步数(Steps)Sa…

Spring Boot 中的 @Field 注解详解

Spring Boot 中的 Field 注解详解 引言 Spring Boot 是目前 Java 生态圈中最受欢迎的 Web 应用开发框架之一&#xff0c;它提供了很多优秀的功能和工具&#xff0c;可以帮助开发者快速构建高效、可靠的 Web 应用程序。其中一个重要的功能就是数据绑定和验证&#xff0c;Sprin…

CRM系统中AI如何进行销售线索评分?有什么好处(下)

好的CRM解决方案既要充分利用销售人员的经验和技能&#xff0c;又要尽可能地消除人为错误。其底层逻辑是&#xff0c;从过程中消除不可预测的人为因素&#xff0c;同时利用好人的自然技能。基于此&#xff0c;AI人工智能被引入CRM客户管理系统&#xff0c;可以说CRM销售线索评分…

如何使用 Docker 部署 FreeGPT-WebUI:一个简单的教程

目录 1. FreeGPT-WebUI 项目简介 2. 安装 Docker 3. 从 Docker Hub 拉取 FreeGPT-WebUI 镜像 4. 使用 Docker 运行 FreeGPT-WebUI 应用程序 5. 访问 FreeGPT-WebUI 应用程序 总结 在本教程中&#xff0c;我们将了解如何使用 Docker 部署 FreeGPT-WebUI&#xff0c;一个基…

看完这一篇,就不要再说不了解Dockerfile了

首先&#xff0c;让我们来介绍一下对于大多数人来说容易有疑惑的地方 WORKDIR 指定工作目录 什么是工作目录&#xff1f;为什么要指定&#xff1f; 拿 window 系统的 powershell 控制台来类比。打开 powershell 命令行控制台&#xff0c;显示的是默认目录&#xff0c;如&…

Java基本概述

1、Java语言的特点 特点一&#xff1a;面向对象 两个基本概念&#xff1a;类、对象三大特性&#xff1a;封装、继承、多态 特点二&#xff1a;健壮性 去掉了C/C中影响程序健壮性的部分&#xff08;指针、内存的申请与释放等&#xff09;&#xff0c;有一个相对安全的内存管…

3-测试用例(CASE)

目录 1.什么是测试用例&#xff1f; 2.为什么要有测试用例&#xff1f; 3.练习 1.什么是测试用例&#xff1f; 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合。 这组集合包含&#xff1a;测试环境、操作步骤、测试数据、预期结…

办公技巧:43个Excel函数,进阶必备,值得收藏

目录 一、关联匹配类 二、清洗处理类 三、逻辑运算类 四、计算统计类 五、时间序列类 今天给大家分享43个Excel函数&#xff0c;希望对大家能有所帮助&#xff01; 一、关联匹配类 经常性的&#xff0c;需要的数据不在同一个Excel表或同一个Excel表不同sheet中&#xff0c…

初阶编程题积累(3)——最接近的三数之和(题目描述、示例、题目思路、题解、解析)

目录 题目描述 示例 题目思路 题解 解析 题目描述 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 示例 1&#xff1a; 输入&…

Vue生态及实践 - 配置中心

目录 目标 配置中心 config/config.js 皮肤/国际化 config/theme.js config/language.js app.js App.vue 权限管理 src/views/about.vue src/views/403.vue config/permission.js src/router.js src/store.js 献上一张通过ai生成的图片~ 目标 配置中心皮肤/国际…

编译SecureValueRecovery项目

准备 下载 git clone https://codeup.aliyun.com/6306306f95064d67d44656e5/lxr1907/SecureValueRecovery.git 进入目录 cd SecureValueRecovery编译enclave make -C ./enclave等待很长时间下载各种镜像后 报错&#xff1a; Fatal error: cant create build/kbupd_enclave_t.o:…

Dubbo详解,用心看这一篇文章就够了【重点】

1.1 Dubbo概述 Dubbo是阿里巴巴开源的基于 Java 的高性能RPC&#xff08;一种远程调用&#xff09; 分布式服务框架&#xff0c;致力于提供高性能和透明化的RPC远程服务调用方案&#xff0c;以及SOA服务治理方案。 每天为2千多个服务提供大于30亿次访问量支持&#xff0c;并被…