Когда пользователь видит код в Google Authenticator, но сайт его не принимает, вход блокируется даже при правильном пароле.
В чем проблема
TOTP зависит от общего secret и точного времени. Ошибка появляется при рассинхронизации времени, неверном secret, повторной привязке 2FA, слишком строгом окне проверки или ошибке алгоритма.
Что проверяю
- Синхронизировано ли время сервера.
- Совпадает ли secret у пользователя и сайта.
- Какое окно допустимого дрейфа времени.
- Не привязан ли новый QR поверх старого.
- Есть ли резервные коды и безопасный сброс.
Как исправляю
Я проверяю 2FA без ослабления безопасности: время, secret, алгоритм и процедуру восстановления доступа.
- Проверяю время сервера и timezone.
- Сверяю настройки TOTP.
- Добавляю допустимое окно соседних интервалов.
- Исправляю повторную привязку 2FA.
- Настраиваю безопасный сброс через администратора или backup codes.
Что получает заказчик
- Коды 2FA принимаются корректно.
- Пользователь может восстановить доступ безопасно.
- Система не принимает устаревшие или чужие коды.
- Администратор понимает причину отказа.
Что нужно для старта
- Описание системы авторизации.
- Логи неудачного входа.
- Доступ к серверу.
- Информацию, когда подключали 2FA.
Вопросы и ответы
Можно ли отключить 2FA пользователю?
Можно только через безопасную процедуру, чтобы не открыть доступ злоумышленнику.
Почему время так важно?
TOTP-код действителен только короткий интервал, обычно около 30 секунд.
Нужна похожая задача?
Напишите, что именно сломалось или что нужно запустить. Я разберу симптомы, проверю техническую причину и предложу понятный план работ с адекватными сроками.