Я хотів би впровадити автентифікацію на основі JWT до нашого нового REST API. Але оскільки термін дії встановлений в маркері, чи можливо його автоматично продовжити? Я не хочу, щоб користувачі не потребували входу через кожні X хвилин, якщо вони активно використовували додаток у цей період. Це було б величезним провалом UX.
Але продовження терміну дії створює новий маркер (а старий все ще діє, поки він не закінчиться). І генерування нового маркера після кожного запиту для мене звучить нерозумно. Здається, що проблема безпеки, коли одночасно дійсно більше одного маркера. Звичайно, я міг би визнати недійсним старий використаний за допомогою чорного списку, але мені потрібно буде зберігати жетони. І однією з переваг JWT є не зберігання.
Я виявив, як Auth0 це вирішив. Вони використовують не тільки JWT маркер, але і маркер оновлення: https://docs.auth0.com/refresh-token
Але знову ж таки, щоб реалізувати це (без Auth0), мені потрібно буде зберігати оновлені маркери та підтримувати їх закінчення. Яка реальна користь тоді? Чому б не мати лише один маркер (не JWT) і не тримати термін дії на сервері?
Чи є інші варіанти? Чи використання JWT не підходить для цього сценарію?