дата окончания действия в формате строки (сам токен живет 5 минут).
Скрипт вычисляет таймаут за 1 минуту до окончания жизни токена - и делает рефреш.
Все работает замечательно до одного момента. Если у юзера на компухтере стоит неверное время (выставлено вручную а не автоматически) - токен либо никогда не обновляется, либо начинается дудос.
Как быть?
Как вот учесть факт возможности неверного времени у юзера на машине?
Спасибо
что если закладывать срок действия строки в миллисекундах и неважен пояс и время где то. будет строго свой отсчет
обновлять токен когда "протухнет ацесс" (по ошибке 401)
Тут проблемы две. Это надо идти к бэкендщикам и просить переделать - что в целом можно. Но также проблема в том, что токен можно получить в двух местах. При логине - и после рефшер токена. Соотвественно, при обновлении страницы - эти милисекунды уже будут недействительны
почему бы не сделать проще и просто не завязываться на это время?
Система сейчас также и работает. Два места которые делают рефреш - логин сервис, и 401 интерцептор. Просто по интерцептору это не совсем бесшовно получается - приложение подвисает в ожидании ответа рефреш токена. Задача - сделать бесшовно
да, у вас типовой вариант бекенда, ваше решение с головняком по минутке — не типовое
Она там и лежит. Просто логика следующая Я залогинился - сервер сгенерил мс до конца жизни - отдал мне - я записал их в стораджи поставил таймер - спустя минуту юзер нажимает f5 - мс из локалстораджа некоректны
это все высчитывается из date.now и вот разница
но если подвязываться на время жизни токена, то все равно нужно лочить запросы на период рефреша
в целом на стороне пользователя никак. можно рестом дергать серверное время
во многих приложениях норм практика, сначала проверяется дата. Если она не актуальная, просит пользователя исправить ее. до этого момента приложение не доступно
Ну по видимому это самое правильное решение. Только вопрос - как это сделать? Я так понимаю - только через стороннее апи?
очевидно через то, где ставят время в токен
Обсуждают сегодня