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

Вопрос по JWT токенам: Есть проект, два ключевых интерфейса в части

авторизации - login и refresh, login взамен на имя/пароль отдает два токена - access и refresh, токены создаются абсолютно одинаково, разница лишь во времени жизни. По истечении времени access токена по классической схеме отправляется refresh и взамен присылается новый access.

1. В этой схеме можно взять refresh токен после истечения access и просто логиниться по нему, это нормально вообще?
2. В интернет статьях о JWT говорится что идея безопасности в том, чтобы можно было токен отозвать, если узнал что он украден, но в существующей у меня реализации я никак его не отзову, потому что он создается и никакой информации о нем не запоминается. (и по некоторым статьям это правильно, потому что jwt - stateless)
3. Я не понимаю вообще где безопасность в этой схеме, украв один из токенов можно какое-то время свободно получать доступ к сервису не вызывая подозрений.
Как сделать это православно, может кто вкратце описать или дать ссылку на хорошее описание?

9 ответов

14 просмотров

refresh нужен, что бы обновлять короткоживущий access token

1. акцесс и рефреш токен отличаются скопом. По рефреш токену нельзя ничего сделать, кроме получения акцесс токена. 2. поверх jwt нужно самому реализовывать механизмы отзыва, используя какой-либо сторедж

Denis Pavlyuchenko
1. акцесс и рефреш токен отличаются скопом. По реф...

и 3. Украв access token действительно можно незаметно получать доступ к сервису пока токен валиден, фишка в том, что бы минимизировать потери путем уменьшения времени жизни токена

Я читал что некоторые отказались от refresh токенов

Denis- Автор вопроса
Denis Pavlyuchenko
1. акцесс и рефреш токен отличаются скопом. По реф...

что значит "скопом"? я же говорю, вот в текущем виде я отправляю refresh токен вместо access, когда access уже истек и у меня всё работает. т.е. если у меня условно access действует 1 час, а refresh 2 дня, то украв refresh злоумышленник может 2 дня ходить на сервис. Мне искусственно нужно в refresh токен писать какой-то отличительный признак, чтобы если в запросе пришёл в поле access: <refreshToken> то сервер его считал невалидным, так это делается обычно?

Denis
что значит "скопом"? я же говорю, вот в текущем ви...

значит вы сделали не так,как нужно. Рефреш токен по определению служит лишь для того, что бы обновлять access, он не может использоваться для доступа к сервису. судя по ``что значит "скопом"?`` вообще мало понимаете, как это должно работать.

Denis- Автор вопроса
Александр
значит вы сделали не так,как нужно. Рефреш токен п...

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

Denis
я же поэтому и спросил, как нужно. я понимаю что р...

вы можете хранить скоупы в jwt, пример можно подсмотреть вот тут: https://nhsconnect.github.io/FHIR-ReasonableAdjustments-API/design_jwt.html, для рефреша вы можете ограничить возможности только обновлением access токена

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта