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