Static GitHub Issues

[1017] use axios interceptors in plugins

prev: How to deal with multiple dynamic routes nuxt generate
next: How to save some information after reloading the page?

version : 1.0.0-alpha.4

import axios from 'axios';

export default ({ store, app: { router }, req }) => {
  // I just want to send an HTTP request to bring Token
  axios.interceptors.request.use(function (config) {
    console.log("store Token : ",store.state.token);
    config.headers.token = store.state.token || "";
    return config
  });
};
async nuxtServerInit({ commit, dispatch, rootState }, { req }) {
    if (req.headers.cookie) {
      let cookies = req.headers.cookie.split(";"), arr;
      for (var i = 0, len = cookies.length; i < len; i++) {
        arr = cookies[i].split("=");
        if (_.trim(arr[0]) == "token") {
         // here is the only place to set Token
          await commit("SET_TOKEN", arr[1]);
          await dispatch("getUserInfo");
        }
      }
    }
  },
 async getUserInfo({ commit }) {
    let { ok, data: { userInfo, authToken } } = await axios("/api/auth/info", {}, "GET");
    ...
    ...
  },
 
 SET_TOKEN(state, token) {
    state.token = _.trim(token);
  },

first log : image

second log : image

<!--cmty--><!--cmty_prevent_hook--><div align="right"><sub><em>This question is available on <a href="https://nuxtjs.cmty.io">Nuxt.js</a> community (<a href="https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c877">#c877</a>)</em></sub></div>