XCRF令牌Axios / Nuxt插件-禁止使用403

时间:2019-06-01 17:51:44

标签: vue.js axios vuex nuxt

几个小时以来我一直在寻找解决方案,但找不到任何解决方案。 通过<p onclick="change(this)">HELLO WORLD</p> <p onclick="change(this)">HELLO WORLD</p> <p onclick="change(this)">HELLO WORLD</p> <p onclick="change(this)">HELLO WORLD</p> window.addEventListener('storage', function(e) { if(!Auth.loggedIn()) { // eslint-disable-next-line location.reload(true); } }); 插件进行发布请求无法正常工作:

nuxt.config.js 文件:

axios

axios插件

nuxt

并调用方法

    axios: {
        debug: true,
        baseURL: `${process.env.API_PROTOCOL}://${process.env.API_HOST}${process.env.API_PORT ? `:${process.env.API_PORT}` : ''}${process.env.API_PREFIX}`,
    },

通过返回CSRF令牌,export default function ({ $axios, redirect, store, }) { $axios.setHeader('Content-Type', 'application/json'); $axios.setHeader('Accept', 'application/json'); $axios.onRequest((config) => { const configLocal = config; const { jwt } = store.state.authentication; if (jwt) { configLocal.headers.JWTAuthorization = `Bearer ${jwt}`; } if (config.method === 'post') { configLocal.headers['X-Requested-With'] = 'XMLHttpRequest'; configLocal.headers['X-XSRF-TOKEN'] = store.state.authentication.crfToken; } }); } 就像一个吊饰一样工作:

authenticateUser({ commit }, { data }) {
    return this.app.$axios.$post('auth/login', data).then(({ token }) => {
        this.$cookies.set('jwt', token);
        commit('setAction', { key: 'jwt', value: token });
    }).catch(e => console.log(e));
},
getCRFToken({ commit }) {
    return this.app.$axios.$get('auth/token').then(({ token }) => {
        this.$cookies.set('crf', token);
        commit('setAction', { key: 'crfToken', value: token });
    });
}, 

但是每当我登录时...

enter image description here

失败。正在github中进行挖掘-试图在许多地方设置getCRFTToken标头,但没有-仍然不起作用。有人知道这种情况的解决方案吗?

修改 enter image description here

1 个答案:

答案 0 :(得分:0)

在config文件夹中,有 shield.js 文件,该配置阻止您的路由。 在文件中将csrf中的enable设置为 false 。 然后它将开始唤醒。