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

В нашем приложении для Android мы используем Time based OTP (totp). Если пользовательское время устройства находится в желаемой ярости (обычно плюс / минус 1-2 часа), totp работает нормально. Однако, когда дата / время устройства неверны (например, на 4 часа отстает от фактического времени) наша totp auth не работает, поэтому мы должны убедиться, что время устройства пользователя обновлено, и если это не так, мы должны показать предупреждение или принудительно пользователь для обновления.

Я думаю, что у Whatsapp есть аналогичная проверка, если время устройства неверное, отображается предупреждение, как мы можем добиться этого программно?

Ну, пустой конструктор java.util.Date по умолчанию возвращает текущее время JVM, то есть устройства Android в этом случае. Если устройство подключено к Интернету, вы можете сравнить его с сервером, но вам нужно позаботиться о преобразовании часового пояса.

nstosic 30.05.2018 16:29
Это будет полезно
vm345 30.05.2018 16:36

Merhaba Ege.TOTP использует время UTC, поэтому, если устройство отстает на 4 часа, с аппаратными часами что-то не так. Некоторые системы имеют механизмы обнаружения «дрейфа», но они больше предназначены для аппаратных токенов (где дрейф неизбежен), но настройка занимает всего несколько минут, а не часов, конечно. Вот пример инструмента обнаружения дрейфа (Javascript, но вы поймете идею): token2.com/?content=hexconvert

Emin 31.05.2018 16:48

@Emin merhaba, спасибо за предложение!

Ege Kuzubasioglu 01.06.2018 11:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
80
0

Другие вопросы по теме