首页 > 其他分享 > 使用 vuex 和 本地存储实现永久性token存在 并且在请求拦截统一添加headers token 避免重复代码

使用 vuex 和 本地存储实现永久性token存在 并且在请求拦截统一添加headers token 避免重复代码

时间:2022-10-11 09:00:31浏览次数:55  
标签:请求 config state data headers token user vuex

在 vuex 仓库中设置state的token值:从本地中取值:

登录的时候调用唯一可以修改state数据的mutations方法设置token ;

export default new Vuex.Store({
  state: {
    // 分类
    // allCate: [],
    user: getItem("USERTOKEN"),
  },
  getters: {},
  mutations: {
    setUserToken(state, data) {
      state.user = data;
      // 如果是简单数据不需要序列化 因此封装一个函数
      //   localStorage.setItem("USERTOKEN", JSON.stringify(data));
      setItem("USERTOKEN", data);
    },
  },
  //   在action中发起 axios?
  actions: {},
  modules: {},
});

在请求拦截器中判断是否存在token 有的话就给所有的请求携带token,

ps:有的接口不需要tokne参数,也可以添加tokne,因为服务器只会去验证自己需要的参数,其余的参数不会管;

// 添加请求拦截器
request.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    // console.log(config, "======请求拦截器=========");
    // config 就是接口相关配置 eg headers data等
    // 如果有token就把tokne加入请求参数
    const { user } = store.state;
    // console.log(user);
    if (user && user.token) {
      //   console.log(111);
      config.headers.Authorization = `Bearer ${user.token}`;
    }
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

标签:请求,config,state,data,headers,token,user,vuex
From: https://www.cnblogs.com/zhulongxu/p/16778066.html

相关文章

  • vuex-persistedstate 持久化插件用来解决数据刷新问题
    vuex-persistedstate持久化插件用来解决数据刷新数据丢失问题1.指定需要持久化的statenpminstallvuex-persistedstate--save引入及配置在store下的index.js中impo......
  • token与cookie的区别?(token是如何避免CSRF攻击?)
    链接:https://blog.csdn.net/m0_37138074/article/details/125628352一、token与cookie的区别?1.1、cookie是浏览器用来存储本地信息的文件(4KB);token(令牌)是由服务器按一定算......
  • (自用)vuex的使用,getters,actions声明与使用
    importrequestfrom"@/api/Interface.js";//schema转jsonfunctionschemaToTableData(modelData){letdfs=(val,tableData)=>{for(letkeyinval){......
  • 聊聊Vuex原理
    背景Vuex是一个专为Vue.js应用程序开发的状态管理模式。Vuex是专门为Vue.js设计的状态管理库,以利用Vue.js的细粒度数据响应机制来进行高效的状态更新。如果你已......
  • cookie session token 对比
    http是无状态,也就是说每次的http请求都是独立的。请求和响应无法维护,都是一次性的,比说在blog上留言发布都需要用户信息的,我们要存储登录用户的状态,**存储方式**1.......
  • 快速将headers转字典
    在pycharm的Preferences-Plugins-Marketplace下搜索Headersinstall安装、apply应用,ok确定  接下来只要复制相关headers,可以XXX ={直接在此处,右键,点击Headers-Hea......
  • vuex使用
    概述1、概念:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信......
  • Antlr词法分析之技巧——修改某个token
    在上一次的博客Antlr词法分析之技巧——保留空白符中,我们演示了如何通过词法分析、语法分析解析出SQL中的所有表名,然后给没有带库名前缀的表名添加库名前缀。这一次我们......
  • 详解vue-element-admin之模块化Vuex
    最近项目要储备vue-element-admin,于是吧官方的demo拿来研究了一段时间~在这段期间内完成了一个自制的小项目,近期会上线(vue-element-admin后台+uniapp制作的小程序),请期待~......
  • 40.TokenAuthentication认证
    TokenAuthentication认证介绍TokenAuthentication是一种简单的基于令牌的HTTP认证适用于CS架构,例如普通的桌面应用程序或移动客户端 TokenAuthentication认证使用......