В нашем приложении для Android мы используем Time based OTP (totp). Если пользовательское время устройства находится в желаемой ярости (обычно плюс / минус 1-2 часа), totp работает нормально. Однако, когда дата / время устройства неверны (например, на 4 часа отстает от фактического времени) наша totp auth не работает, поэтому мы должны убедиться, что время устройства пользователя обновлено, и если это не так, мы должны показать предупреждение или принудительно пользователь для обновления.
Я думаю, что у Whatsapp есть аналогичная проверка, если время устройства неверное, отображается предупреждение, как мы можем добиться этого программно?
Merhaba Ege.TOTP использует время UTC, поэтому, если устройство отстает на 4 часа, с аппаратными часами что-то не так. Некоторые системы имеют механизмы обнаружения «дрейфа», но они больше предназначены для аппаратных токенов (где дрейф неизбежен), но настройка занимает всего несколько минут, а не часов, конечно. Вот пример инструмента обнаружения дрейфа (Javascript, но вы поймете идею): token2.com/?content=hexconvert
@Emin merhaba, спасибо за предложение!




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