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

这篇具有很好参考价值的文章主要介绍了vue——接口修改请求头——有些接口不需要请求头传递token——基础积累。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在写后台管理系统的时候,遇到一个切换租户的功能。在请求接口的时候不需要传递token

效果图

vue——接口修改请求头——有些接口不需要请求头传递token——基础积累,vue技能提升,前端基础知识,javascript知识点,vue.js,前端,javascript
直接上代码吧:

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;
  },
  //其他内容省略了。。。
}

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

下面介绍一下axios的基本用法:

axios官网

axios官网:https://www.axios-http.cn/docs/intro

vue——接口修改请求头——有些接口不需要请求头传递token——基础积累,vue技能提升,前端基础知识,javascript知识点,vue.js,前端,javascript

Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。

Axios 实例

创建一个实例
您可以使用自定义配置新建一个实例。

axios.create([config])
const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

默认配置

默认配置
您可以指定默认配置,它将作用于每个请求。

全局 axios 默认值
axios.defaults.baseURL = ‘https://api.example.com’;
axios.defaults.headers.common[‘Authorization’] = AUTH_TOKEN;
axios.defaults.headers.post[‘Content-Type’] = ‘application/x-www-form-urlencoded’;
自定义实例默认值
// 创建实例时配置默认值
const instance = axios.create({
baseURL: ‘https://api.example.com’
});

// 创建实例后修改默认值
instance.defaults.headers.common[‘Authorization’] = AUTH_TOKEN;
配置的优先级
配置将会按优先级进行合并。它的顺序是:在lib/defaults.js中找到的库默认值,然后是实例的 defaults 属性,最后是请求的 config 参数。后面的优先级要高于前面的文章来源地址https://www.toymoban.com/news/detail-547364.html

到了这里,关于vue——接口修改请求头——有些接口不需要请求头传递token——基础积累的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • postman获取接口返回数据并设置全局请求头token

    此时 TOKEN出现 将 验证码和登录放到外侧 在每个文件夹下设置 token

    2024年02月05日
    浏览(46)
  • JMeter请求参数Parameters,带中文或特殊字符(+/=)时,例如登录密码或者token等,需要勾选编码

    以前的登录接口密码参数不包含特殊字符,为了安全,产品今天修改了需求,密码必须由数字,字母和特殊字符构成,之前利用JMeter接口编写的脚本报错了,调整了一下,里面踩了一点坑,记录下来,希望对大家有帮助。 修改以前的接口,第一反应就是换一个复杂密码,然后

    2024年01月18日
    浏览(32)
  • Spring Security请求oauth/token接口报401 Unauthorized

    项目spring-security+oauth2 版本是5.7.6 项目以client的形式请求 TokenEndPoint 中的 /oauth/token ,使用Basic认证调用接口,返回token 先前是可以登录访问,更新代码之后,现在登录访问报401 Unauthorized 问题的难点是,这个错误信息是项目中请求以http方式请求 TokenEndPoint 中的 /oauth/token 返回

    2023年04月22日
    浏览(36)
  • 【Uniapp】小程序携带Token请求接口+无感知登录方案2.0

    本次改进原文《【Uniapp】小程序携带Token请求接口+无感知登录方案》,在实际使用过程中我发现以下 bug : 若token恰好在用户访问接口时到期,就会直接查询为空,不反映token过期问题(例如:弹窗显示订单查询记录为空),并不是因为没有数据而是因为token过期了,接口返回

    2024年02月09日
    浏览(30)
  • 接口测试场景:怎么实现登录之后,需要进行昵称修改?

    在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现? 首先我们分别看下登录、昵称修改的接口说明: 以上业务中补充一点,昵称修改,还需要添加请求头Authorization传登录获取的token值。 分析:登录之后的响应结果中会返回用户id、token信息; 而更新昵

    2024年02月22日
    浏览(29)
  • Vue3---请求拦截器携带token

    为什么要在请求拦截器携带Token? Token作为用户标识,在很多个接口中都需要携带Token才可以正确获取数据,所以需要在接口调用时携带Token。另外,为了统一控制采取请求拦截器携带的方案 如何配置? Axios请求 拦截器 可以在接口正式发起之前对请求参数做一些事情,通常Toke

    2024年02月15日
    浏览(39)
  • Vue项目将token添加到请求头中

    1.调用后端登录接口获取token(我这里是将登陆接口封装在vuex中) 2.创建request.js文件,封装axios 3.在main.js中引入request.js,将其绑定到Vue原型链上

    2024年02月11日
    浏览(30)
  • vue中子组件间接修改父组件传递过来的值

    Vue官方文档Props单向数据流讲解 Vue中遵循 单向数据流 ,所有的 props 都遵循着单向绑定原则,props 因父组件的更新而变化, 自然地将新的状态向下流往子组件 ,而 不会逆向传递 。这避免了子组件意外修改父组件的状态的情况,不然应用的数据流将很容易变得混乱而难以理解

    2024年02月15日
    浏览(37)
  • 有了Composition API后,有些场景或许你不需要pinia了

    日常开发时有些业务场景功能很复杂,如果将所有代码都写在一个vue组件中,那个vue文件的代码量可能就几千行了,维护极其困难。这时我们就需要将其拆分为多个组件,拆完组件后就需要在不同组件间共享数据和业务逻辑。有的小伙伴会选择将数据和业务逻辑都放到 pinia

    2024年01月23日
    浏览(30)
  • vue 前端登录获取token后添加到cookie,并使用token获取其他数据(添加到请求头中)

    1.登录获取到token存到cookie中   这里我的cookie设置为一天失效 cookie.js代码如下 main.js导入到全局使用 request.js请求头添加token   最后浏览器可查看到   并且下一次发请求时候请求参数中可查看到

    2024年02月15日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包