Устаревший токен в подписках клиента Apollo - PullRequest
1 голос
/ 14 февраля 2020

У меня есть рабочие подписки и правильный токен в ссылке http, но я получаю устаревший токен из последнего сеанса в ссылке ws. Когда я консольный лог обработчик connectionParams, он выполняется только на странице refre sh, поэтому неудивительно, что я получаю устаревший токен. Я думал, что это должно быть выполнено на каждой транзакции websocket. Мой серверный код в порядке, я анализирую токены без проблем. Я читаю токен из локального хранилища так же, как и для ссылки http. Полный код клиента можно найти здесь

Вот моя ссылка на websockets:

const wsLink = new WebSocketLink({
  uri: `ws://localhost:8000/graphql`,
  options: {
    reconnect: true,
    lazy: true,
    inactivityTimeout: 1000,
    connectionParams: () => {
      const token = localStorage.getItem('token');
      // this console log gets executed
      // only on page refresh
      console.log('token ws', token);
      return {
        headers: {
          'x-token': token ? token : '',
        },
      };
    },
  },
});

...