Я хотел бы реализовать аутентификацию на основе JWT в нашем новом REST API. Но поскольку срок действия установлен в токене, можно ли его автоматически продлить? Я не хочу, чтобы пользователям приходилось регистрироваться через каждые X минут, если они активно использовали приложение в этот период. Это было бы огромным сбоем UX.
Но продление срока действия создает новый токен (и старый остается действительным до истечения срока его действия). И генерация нового токена после каждых запросов звучит глупо для меня. Звучит как проблема безопасности, когда одновременно используется более одного токена. Конечно, я мог бы аннулировать старый использованный, используя черный список, но мне нужно будет хранить токены. И одно из преимуществ JWT не является хранилищем.
Я нашел, как Auth0 решил это. Они используют не только токен JWT, но и токен обновления: https://docs.auth0.com/refresh-token
Но опять же, чтобы реализовать это (без Auth0), мне нужно будет хранить токены обновления и поддерживать их истечение. Какая же реальная польза? Почему бы не иметь только один токен (не JWT) и сохранить срок действия на сервере?
Есть ли другие варианты? Использует ли JWT не подходящий для этого сценария?