Pocket Brokers

Проблема с доступом в аккаунт на Покете

Демо-счёт и обучение

#21
Странный костыль с заменой библиотеки. По мне так, перенос всего в память — это просто перекладывание проблемы из одного кармана в другой, потому что при любом рефреше страницы всё равно придётся заново авторизовываться. Неужели на Покете настолько криво реализован механизм обновления, что приходится менять весь клиентский стек? Я пробовал просто прописать жесткие заголовки в запросах, чтобы обходить этот глюк с refresh-токеном, но в итоге всё равно вылетало по тайм-ауту. Кажется, проблема глубже, чем просто место хранения данных. Скорее всего, сервер просто сбрасывает сессию по какому-то своему внутреннему триггеру, и никакая «чистая» версия библиотеки тут не поможет, если бэкенд так работает.
Ответить · Цитировать
#22
Насчёт того «костыля» с хранением токена в памяти – в моём случае он тоже не спасал от полной потери сессии после простого обновления окна. Я пробовал по‑другому: вместо того, чтобы полностью полагаться на клиентскую библиотеку, вынес отдельный слой, который кэширует refresh‑токен в IndexedDB и автоматически подсовывает его в запросы, даже если страница перезагрузилась. При этом основной скрипт не «перепрыгивает» в состояние незалогиненного, а сразу восстанавливает auth‑заголовок, пока сервер не откажет. Выглядит чуть громоздко, но в отличие от чисто «в памяти» решения, токен живёт между сессиями, а не исчезает при каждом reload. Да, это требует небольших доработок: обработка ошибок 401, проверка срока жизни токена и, при необходимости, запрос нового. Тем не менее, такой подход убирает постоянные переавторизации, которые в текущей реализации Покета, судя по всему, считаются нормой, а не «кривой» ошибкой. Если у кого‑то уже есть готовый патч или небольшая библиотека‑обёртка, скиньте – сэкономим время, а иначе придётся продолжать «ходить» по этим костылям каждый раз, когда браузер решит очистить память.
Ответить · Цитировать

Ваш ответ

Регистрация Вход

Последние темы