Здравствуйте, Sinclair, Вы писали:
S>Нет, зачем? Это просто сессионный токен, который выдан вам сервисом аутентификации.
И? Вы его сбросили и установили в другой — далее что? Автоматом все запросы отменятся что ли?
S>>Как вы представляете прекращение существования пользовательской сессии? Убить процесс приложения? S>Самый простой вариант — да, убить процесс
Вот в этом у вас и проблема... В 2025 году так никто не делает. Программа продолжает работать, просто переходит на страницу входа — вот в чем фишка.
Понимаете ли что реальность — она другая. По логике вещей — пользователь вышел — и все должно схлопнуться, исчезнуть, задиспозится. Но нет — так нельзя. Программа по прежнему работает.
S>>Но нет же, при выходе приложение не убивается а продолжает работать — просто переходит на страницу входа. Тогда что же? S>Тогда закрыть все формы и освободить связанные с ними структуры данных, в которых используется сессионный токен.
Вот именно что:
1. Закрыть все формы.
2. Обнулить все состояния.
3. Оборвать все запросы и длительные операции.
Не просто формы — сейчас в формах никто данные не хранит, еще раз вам говорю — данные изменяются отдельно — и при изменении даных несколько форм может обновиться.
Далее, ок. Обнулили данные. А как быть если уже вызвана асинхронная функция, которая делает несколько запросов к серверу? После каждого запроса вам нужно что? Правильно, проверять актуален ли пользователь и если НЕТ — то что? Херачить запросы далее или?
S>>Вы когда-нибудь реально меняли? У вас есть два аккаунта разных? Или просто верите в это? S>Конечно менял. Там, если что, есть режим с "демо аккаунтом".
Так дело вот в чем. Чтобы эта ошибка проявилась — нужно не простои изменить пользователя. Нужно чтобы первый пользователь запустил некую длительную операцию, которая выполняется дольше чем вход/выход из аккаунта. Это трудноуловимые ошибки и тестеры их не обнаружат да и пользователи очень редко когда столкнуться.