Home

Issue: 1017

use axios interceptors in plugins

[issue link]

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

This question is available on Nuxt.js community (#c877)