У меня есть рабочие подписки и правильный токен в ссылке 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 : '',
},
};
},
},
});