169 похожих чатов

Всем привет. Ситуация следующая. Есть логика рефреш токена по таймауту. В токене есть

дата окончания действия в формате строки (сам токен живет 5 минут).
Скрипт вычисляет таймаут за 1 минуту до окончания жизни токена - и делает рефреш.
Все работает замечательно до одного момента. Если у юзера на компухтере стоит неверное время (выставлено вручную а не автоматически) - токен либо никогда не обновляется, либо начинается дудос.
Как быть?
Как вот учесть факт возможности неверного времени у юзера на машине?
Спасибо

14 ответов

22 просмотра

что если закладывать срок действия строки в миллисекундах и неважен пояс и время где то. будет строго свой отсчет

обновлять токен когда "протухнет ацесс" (по ошибке 401)

Игорь-Шаповалов Автор вопроса
Rus
что если закладывать срок действия строки в миллис...

Тут проблемы две. Это надо идти к бэкендщикам и просить переделать - что в целом можно. Но также проблема в том, что токен можно получить в двух местах. При логине - и после рефшер токена. Соотвественно, при обновлении страницы - эти милисекунды уже будут недействительны

почему бы не сделать проще и просто не завязываться на это время?

Игорь-Шаповалов Автор вопроса
Andrei
обновлять токен когда "протухнет ацесс" (по ошибке...

Система сейчас также и работает. Два места которые делают рефреш - логин сервис, и 401 интерцептор. Просто по интерцептору это не совсем бесшовно получается - приложение подвисает в ожидании ответа рефреш токена. Задача - сделать бесшовно

Игорь Шаповалов
Система сейчас также и работает. Два места которые...

да, у вас типовой вариант бекенда, ваше решение с головняком по минутке — не типовое

Игорь-Шаповалов Автор вопроса
Rus
локалсторадж?

Она там и лежит. Просто логика следующая Я залогинился - сервер сгенерил мс до конца жизни - отдал мне - я записал их в стораджи поставил таймер - спустя минуту юзер нажимает f5 - мс из локалстораджа некоректны

Игорь Шаповалов
Система сейчас также и работает. Два места которые...

но если подвязываться на время жизни токена, то все равно нужно лочить запросы на период рефреша

в целом на стороне пользователя никак. можно рестом дергать серверное время

во многих приложениях норм практика, сначала проверяется дата. Если она не актуальная, просит пользователя исправить ее. до этого момента приложение не доступно

Игорь-Шаповалов Автор вопроса
Madi
во многих приложениях норм практика, сначала прове...

Ну по видимому это самое правильное решение. Только вопрос - как это сделать? Я так понимаю - только через стороннее апи?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта