Как повторить действие с запросом, в случае проблем с аутентификацией? - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть действие меню с аутентификацией.

  async getMenu({rootState, commit}) {
    try {
      const { auth, lang } = rootState;

      const {items} = await this.$axios.$get(`/api/${ lang.locale }/menu`, {
        headers: {
          'Authorization': `bearer ${auth.token}`,
          'Accept-Language': `${lang.locale}`
        },
      });

      if (items) {
        // set items
        commit('setMenu', items);
      }
    } catch (error) {
      console.log({Error: error})
    }
  }

В случае ошибки я отправляю запрос с refre sh токеном

  $axios.onError(async (error) => {
    const code = parseInt(error.response && error.response.status);
    const message = error.response && error.response.data && error.response.data.error;

      if (code === 403) {
        await store.dispatch(
          'auth/refreshToken',
          { refreshToken: store.state.auth.refreshToken },
          { root: true }
        );

Как повторить действие после получения токена

1 Ответ

0 голосов
/ 04 февраля 2020

Использование

  $axios.defaults.validateStatus = (status) => {
    return [200, 402].indexOf(status) !== -1;
  };

  $axios.onResponse(async (response) => {...}
...