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

А почему у тебя вообще получается замкнутая петля? Ну создаешь

ты запрос, увидел что протух токен... отправил рефреш на сервис рефреша, получил новый и погнал в аполло

8 ответов

16 просмотров

Запрос на новый токен проходит через этот же интерцептор, на него вешается уже истекший или невалидный токен и сервер присылает 401

Владимир- Автор вопроса
Роберт
Запрос на новый токен проходит через этот же интер...

проблема не в интерсепторе, кмк, а в логике реализации. Ты отправляешь запрос, токена нет/он протухший. Тебя редиректит на форму логина. Ты входишь в систему, получаешь токен. Из него извлекаешь время, когда он протухнет. До того, как этот момент настал - отправляешь валидный токен на рефреш и получаешь свежий. Если что-то где-то сглючило и у тебя невалидный токен, вновь редирект на логин. Никаких "я отключу отправку токена и открою дырищу в безопасности"

Владимир
проблема не в интерсепторе, кмк, а в логике реализ...

Я понимаю что что-то не так с реализацией. Поэтому обратился сюда. Но как тогда правильно отслеживать время жизни токена? Т.е. допустим я получил токен, живет он 10 минут, я слежу чтобы через 9 минут он обновился, но при этом закрываю браузер и через 5 минут открываю. Как понять через сколько его обновить? Или обновлять при каждом входе, если токены допустим в localStorage?

Владимир- Автор вопроса
Роберт
Я понимаю что что-то не так с реализацией. Поэтому...

варианты разные... например - при любом запросе ты так и так цепляешь токен. В процессе запроса - проверяй время его истечения, если оно меньше порогового значения, делай запрос с текущим токеном (который еще валиден) и параллельно - запрос на рефреш

Владимир
варианты разные... например - при любом запросе ты...

Что ты имеешь в виду под проверкой времени его истечения?

Владимир- Автор вопроса
Роберт
Что ты имеешь в виду под проверкой времени его ист...

в токене есть exp - экспайр дата, время окончания жизни токена. Берешь его и вычитаешь из текущего времени. Если разность меньше какого-то порога, инициируешь запрос на рефреш

Владимир
в токене есть exp - экспайр дата, время окончания ...

Имеешь в виду должно быть поле с датой окончания? На текущий момент просто есть только поле с длительностью его жизни)

Роберт
Имеешь в виду должно быть поле с датой окончания? ...

Значит должна быть ещё дата начала активности. Потому что толку просто от длительности нет Что за токен вообще? Кастомный какой то?

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

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

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...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта