Я ссылаюсь на другое сообщение SO, которое обсуждает использование токенов обновления с помощью JWT.
Автоматическое продление срока действия JWT (JSON Web Token)
У меня есть приложение с очень распространенной архитектурой, где мои клиенты (веб-и мобильные) разговаривают с REST API, который затем разговаривает с уровнем сервиса и уровнем данных.
Я понимаю аутентификацию маркера JWT, но я немного смущен тем, как использовать токены обновления.
Я хочу, чтобы моя JWT-аутентификация имела следующие свойства:
-
Значок JWT имеет срок действия 2 часа.
-
Токен обновляется каждые один час клиентом.
-
Если токен пользователя не обновляется (пользователь неактивен и приложение не открыто) и истекает, им необходимо будет войти в систему, когда захотят возобновить работу.
Я вижу, что многие люди претендуют на то, чтобы сделать это лучше, используя концепцию токена обновления, однако я не вижу в этом преимущества. Кажется, что эта сложность связана с этим.
Мои вопросы таковы:
- Если бы я использовал токен обновления, не было бы еще полезно иметь долгосрочное окончание срока для хорошей практики на этом токене?
- Если мне нужно использовать токен обновления, будет ли этот токен сохранен с помощью токена userId и/или JWT?
- Когда я обновляю свой токен каждые 1 час, как это работает? Я хочу создать конечную точку, которая принимает мой токен JWT или токен обновления? Будет ли это обновлять дату истечения срока действия моего оригинального токена JWT или создать новый токен?
- Есть ли необходимость в токере обновления, учитывая эти данные? Кажется, что если пользователь просто использует токен JWT для захвата нового токена (по ссылке выше), токен обновления устарел.