На одном из проектов несколько раз столкнулся с очень неприятной проблемой связанной с жизнью токена и неправильно настроенным временем у клиента в ОС.
Сервер (время на сервере настроено верно) генерирует JWT токен с временем жизни 1 час. На клиенте неверно настроен часовой пояс, допустим должен быть +03:00, а на деле +00:00. Отсюда получаем проблему что когда на клиенте я проверяю жив ли еще токен, то сразу после логина получается что токен просрочен, в нашем случае на 2 часа.
На данном проекте клиентов у проекта не много и можно каждому отдельно объяснить, что надо просто правильно настроить часовой пояс. Но что если бы клиентов была сотни тысяч? Как тогда решить эту проблему?
Мне в голову приходит вариант брать на клиенте не его локальное время, а забирать его откуда-то с внешнего сервера, но быстрое гугление мне особо не дало результатов. Возможно смотрю не в том направлении? Подскажите кто сталкивался с подобными ситуациями?
Небольшой скринкаст для понимания сути проблемы:
https://youtu.be/C3Oo1bDtI84