Хочу разобраться как правильно реализовать обновление jwt для web - приложения.
Путем гугления нашел ответ
stackoverflow.com/questions/26739167/jwt-json-web-...
Но как я понял там предлагают хранить в самом токене время, когда текущий токен нужно заблокировать и выдать новый.
Т.е. получается, что если токен украдут, то его можно использовать до бесконечности т.к. при наличии токена и истечении времени обновления, выдается новый валидный токен.
Или забиваем на проблему кражи токена, надеясь на HTTPS?
Еще натыкался на схему с jwt и refresh токеном, типа новый jwt можно получить только если предъявить refresh токен. В такой схеме я видел следующую ситуацию:
1. Клиент делает запрос на сервер передавая уже просроченный jwt
2. Сервер отдает 401/403
3. Чтобы конечному пользователю не проходить аутентификацию снова, клиент ловит эту 401/403 ошибку и делает запрос на получение нового jwt предъявив refresh
4. Сервер выдает новый jwt (и возможно плюс новый refresh токен еще) и клиент повторяет запрос №1 но уже с валидным jwt и все почти счастливы.
Для конечного пользователя такая схема, скорее всего, будет выглядеть долгой загрузкой страницы.
В итоге, как же правильно обновлять jwt, чтобы это было безопасно и конечный пользователь был доволен?