Как решить проблему разлогинивания VueJS JWT с несколькими табами браузера?
Доброго времени суток.
Столкнулся с такой проблемой.
Открываются две вкладки (одновременно),
видят, что access_token устарел, отправляют запрос
на refresh_token.
Первой вкладке - приходит ответ,
Второй приходит 404, т.к. данные уже
были изменены первой вкладкой
и в итоге разлогинивает все вкладки.
Статус хранятся в Cookie, типа кто-то уже послал
на обновление, тебе не стоит рыпаться, жди ответ...
Но из-за того, что это происходит одновременно,
не успевает вторая вкладка считать куки...
Я поставил задержку на проверку статуса 1 секунду,
3-4 вкладки отработали отлично...
Чуть больше вкладок - не хватает времени и минимум два запроса успевают
проскочить...
Может есть какие практики решения данной проблемы?
Или статью полезную...т.к. в гугле много советов нашел, но
как бороться с несколькими вкладками...
Kovalsky, это не решит его проблему в базе refresh token будет обновлен соответственно одна из вкладок будет отправлять устаревший токен. Интересная задачка. Ну а вообще не стоит делать так, чтобы разлогинивались все вкладки после неуспешной одной. Обычно решается обновлением странички, чтобы на обеих вкладках встали актуальные куки.
WapSter, как грациозно ты избежал все знаки препинания там где они нужны и поставил там где не нужны) Но это лирическое отступление, просто красиво
Почему не решит? При отправке запроса на обновление пишем в лс что-то типа token_is_being_renewed: 'true', в любой другой вкладке приложение ждет пока token_is_being_renewed не станет равно 'false', после чего получает доступ к новому токену. Только что проверил на 20 вкладках, вроде работает как задумано
WapSter, Интересный подход...нужно будет попробовать! Или запустить таймер, например 10 секунд, если токен не обновился, отправить на логин... Kovalsky, Не решит - т.к. пробовал и куки, и localStorage - при открытии браузера, он восстанавливает вкладки, и успевает отправить запрос до того, как localStorage изменится... У меня комп не слабый, на 7-8 вкладках такое произошло, на слабом компе с 4 вкладки уже...