vUdav
@vUdav
Front-end developer

Как правильно определить время на клиенте, если у пользователя неправильно настроен часовой пояс в ОС?

На одном из проектов несколько раз столкнулся с очень неприятной проблемой связанной с жизнью токена и неправильно настроенным временем у клиента в ОС.

Сервер (время на сервере настроено верно) генерирует JWT токен с временем жизни 1 час. На клиенте неверно настроен часовой пояс, допустим должен быть +03:00, а на деле +00:00. Отсюда получаем проблему что когда на клиенте я проверяю жив ли еще токен, то сразу после логина получается что токен просрочен, в нашем случае на 2 часа.

На данном проекте клиентов у проекта не много и можно каждому отдельно объяснить, что надо просто правильно настроить часовой пояс. Но что если бы клиентов была сотни тысяч? Как тогда решить эту проблему?

Мне в голову приходит вариант брать на клиенте не его локальное время, а забирать его откуда-то с внешнего сервера, но быстрое гугление мне особо не дало результатов. Возможно смотрю не в том направлении? Подскажите кто сталкивался с подобными ситуациями?

Небольшой скринкаст для понимания сути проблемы: https://youtu.be/C3Oo1bDtI84
  • Вопрос задан
  • 550 просмотров
Пригласить эксперта
Ответы на вопрос 3
petermzg
@petermzg
Самый лучший программист
Так в вашем вопросе есть и ответ. Проблема в часовом поясе, исключите проблему, то есть уберите зависимость от часового пояса. Используйте UTC время
Ответ написан
Гугль, например никак не решает эту проблему, он просто пишет, вы не можете залогиниться потому что у вас неправильно настроено время на компе.
Ответ написан
Комментировать
vUdav
@vUdav Автор вопроса
Front-end developer
Нашел вот такое апи worldtimeapi.org попробую использовать его для определения настоящего времени вместо клиентского
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы