【问题标题】:How to use store in Vue/ Nuxt plugin?如何在 Vue/Nuxt 插件中使用 store?
【发布时间】:2018-05-08 12:17:31
【问题描述】:

我正在编写一个通过后端进行身份验证的 nuxt 应用程序。我有一个拦截所有 http 请求的 http 插件。我需要为所有请求添加一个身份验证令牌,该令牌在商店中。我想知道的是,如何从插件访问商店?

import axios from 'axios';

var api = axios.create({
   baseURL: 'http://127.0.0.1:8000/api/'
});

api.interceptors.request.use(function (config) {
    config.headers = {
        'Authorization': 'Bearer' + **how do access store?**
    }

    return config;
 }, function (error) {
       return Promise.reject(error);
 });

export default api;

谢谢

【问题讨论】:

标签: vue.js vuex nuxt.js


【解决方案1】:

您可以尝试在插件的上下文中使用应用商店。 您的插件需要一些更改:

import axios from 'axios';

var api = axios.create({
   baseURL: 'http://127.0.0.1:8000/api/'
});

export default (context, inject) => {
  api.interceptors.request.use(function (config) {
    config.headers = {
        'Authorization': 'Bearer' + context.app.$store.state.your_path_to_token
    }

    return config;
  }, function (error) {
       return Promise.reject(error);
  });

  return api;
}

另一种方法是创建 store/index.js 文件并将它们导入插件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 2020-02-24
    • 2022-12-21
    • 2018-10-11
    • 2021-09-03
    相关资源
    最近更新 更多