我正在编写一个使用后端进行身份验证的nuxt应用程序。我有一个http插件拦截所有的http请求。我需要为所有请求添加一个auth令牌,令牌在商店中。我想知道的是,如何从插件访问商店?
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;
由于
答案 0 :(得分: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文件并将它们导入插件。