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

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

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

14 ответов

8 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
77
А дин типизация это хорошо или плохо?
Alexey
12
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Карта сайта