Описание проекта
Конкретно требуется поддержка TOTP, совместимая с распространёнными приложениями-аутентификаторами, канал одноразовых кодов по электронной почте как альтернативный второй фактор и одноразовые резервные коды, которые пользователь может распечатать или сохранить на случай потери устройства. Подключение должно быть пошаговым и обратимым: выдача секрета через QR, обязательный шаг проверки до фактического включения 2FA и понятный путь восстановления, который не блокирует человека навсегда. Параллельно ожидаем нормальное управление сессиями: читаемый список активных сессий и устройств, возможность удалённо завершить любую из них, а также оповещения о входе, которые уведомляют владельца при появлении нового устройства или необычной попытки входа. Всё это должно следовать актуальным практикам хранения секретов, ограничения частоты запросов и защиты от перебора и повторного использования кодов.
В результат входят рабочий набор функций, миграции базы данных, административные переключатели там, где это уместно, автотесты критичных сценариев и краткая документация для нашей команды. В отклике опишите релевантный опыт работы с аутентификацией и безопасностью и подход к восстановлению доступа, если пользователь потерял и устройство, и резервные коды.
— TOTP через приложения-аутентификаторы и одноразовые коды по e-mail как вторые факторы
— Одноразовые резервные коды восстановления с безопасной перегенерацией
— Пошаговое и обратимое подключение с выдачей QR и шагом проверки
— Список активных сессий и устройств с удалённым завершением
— Оповещения о входе с нового устройства и о подозрительных попытках
— Ограничение частоты, защита от перебора и повторов, безопасное хранение секретов