AWS API-шлюз + Vue Сохранить Alive CORS не удается - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть компонент vue, который первоначально отправляет запрос в шлюз API, связанный с лямбда-функцией, и отображает загруженные данные. Пользователь имеет возможность применять определенные фильтры, а затем новый запрос с заданными параметрами поиска отправляется на AWS API Gateway. Чтобы сохранить результаты, я обернул компонент в средство поддержки.

<keep-alive>
  <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>

Однако после определенного времени бездействия в течение примерно 10 минут, если пользователь пытается выполнить новый поиск, происходит сбой CORS (причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).

Вот код, как я называю API

 async init() {
    const user = await Auth.currentAuthenticatedUser();
    const token = user.signInUserSession.idToken.jwtToken;
    this.token = token
    this.isInitialized = true;
  }

  async initHelper() {
    if (!this.isInitialized) {
      await this.init();
    }
  }

  async performGetRequest(endpoint) {
    await this.initHelper();

    try {
      const request = {
        body: {},
        headers: {
          Authorization: this.token,
        }
      };

      const result = await API.get('xxxxx', endpoint, request);
      return result;
    } catch (error) {
      console.log('error performing get request');
      console.log(error);
    }
  }

У кого-нибудь есть предложения, как это исправить? Очевидно, что CORS включен в шлюзе API, и эта ошибка возникает только в связи с vue keep alive.

Обновление: ОК. Мне удалось самостоятельно найти проблему, я удалил одноразовую инициализацию, казалось, что срок действия токена истек, поэтому предварительный полет не удался из-за пользовательской авторизации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...