Как использовать претензию jti в JWT

В спецификации JWT упоминается утверждение jti, которое якобы можно использовать как одноразовый номер для предотвращения повторных атак:

Заявление jti (JWT ID) предоставляет уникальный идентификатор для JWT. Значение идентификатора ДОЛЖНО быть назначено таким образом, чтобы обеспечить незначительную вероятность того, что одно и то же значение будет случайно назначено другому объекту данных; если приложение использует несколько эмитентов, коллизии ДОЛЖНЫ быть предотвращены среди значений, созданных разными эмитентами. Заявление jti может быть использовано для предотвращения воспроизведения JWT. Значение jti является чувствительной к регистру строкой. Использование этой претензии является необязательным.

Мой вопрос заключается в том, как мне поступить в реализации этого? Нужно ли сохранять ранее использовавшиеся jtis и выдавать новый JWT при каждом запросе? Если так, разве это не разрушает цель JWT? Зачем использовать JWT вместо простого хранения случайно сгенерированного идентификатора сеанса в базе данных?

У моего REST API есть база данных mongo, и я не против добавления экземпляра redis. Есть ли лучший вариант аутентификации, чем JWT? Я в основном просто не хочу хранить пароли на клиенте, что исключает HTTP-аутентификацию в качестве опции, однако, поскольку я углубляюсь в этот материал JWT, я начинаю чувствовать, что реализация пользовательского токена или другой стандарт могут лучше удовлетворить мои потребности. Существуют ли какие-либо узлы / экспресс-пакеты для аутентификации на основе токенов, которые поддерживают отзыв токенов и ротацию токенов?

Буду признателен за любые советы.

Ответы на вопрос(2)

Ваш ответ на вопрос