Как продлить срок действия в обычном токене доступа

Я читал о JWT и пытаюсь реализовать его на своем сервере. У меня уже есть API, который принимает пользователя и отправляет обратно JWT со сроком действия. Что ж ... тогда у меня есть другой метод проверки токена. Есть ли какой-либо метод, который я могу использовать для увеличения срока действия обычного токена доступа? Я читал, что есть другой тип токена, называемый Refresh Token ... но это больше, чем мне нужно ... я просто хочу увеличить время истечения срока действия, вот и все

 jwt.sign({ user }, SECRET , { expiresIn: '5m'} ); // HOW I CREATE THE TOKEN
 jwt.verify(req.token, SECRET , (error, data) => {} <---- // HERE IS WHERE I WOULD LIKE TO INCREASE 

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

Ha. Huynh 27.12.2018 15:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
1 205
2

Ответы 2

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

Я предлагаю вам прочитать, как работает JWT. Ознакомьтесь с частью следующей статьи, посвященной Signature: Введение в веб-токены Json - jwt.io

Что вы можете сделать по этому поводу? Просто создайте новый JWT.

Нет. Просто выдайте новый токен, как и для нового пользователя. В новом токене вы можете установить новый срок действия.

NikxDa 27.12.2018 15:23

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

Sergio Cano 27.12.2018 15:27

Это зависит исключительно от количества пользователей и срока действия токенов по умолчанию, но обычно JWT не должен вызывать беспокойства с точки зрения нагрузки на сервер. Кроме того, если вы считаете и ответы здесь полезными, подумайте о том, чтобы проголосовать за них. :)

NikxDa 27.12.2018 15:31

Вам придется заново создать токен. Токен подписан, что делает его уникальным. Он нарушает назначение токена, если вы измените время истечения срока действия и волшебным образом станет действительным.

Могу я попытаться понять, что мешает вам сгенерировать новый токен в том месте, где вы хотите увеличить время опыта?

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

Sergio Cano 27.12.2018 15:11

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

rakesh kashyap 27.12.2018 15:13

Другие вопросы по теме