Нужно свою схему выдумывать, но это будет менее секурно, тк нужна связь между вторым фактором (телефоном) и сервером. <br/> <blockquote>То есть нужно, что бы была просто кнопка "Подтвердить" и эти цифры отправлялись на IP адрес сервера.</blockquote> <br/> Тут будут уже не цифры отправляться, а просто запрос с идентификатором сессии, которую нужно разрешить. <br/> <br/> + Это не стандартизировано и придётся делать своё приложение и свой протокол. <br/> <br/> Обычно это выглядит так: <br/> 1. На каждую попытку входа создаётся уникальный токен, который выводится на экран компьютера при помощи QR-кода. <br/> 2. Пользователь открывает приложение на телефоне, где он уже залогинился (используя другой вариант второго фактора, типа тех же TOTP или sms) <br/> 3. В приложении сканирует этот код, приложение получает информацию об этой попытке входа с вашего сервера и демонстрирует пользователю (ip адрес, имя устройство, примерное местоположение). <br/> 4. В случае подтверждения пользователем - отправляет запрос на сервер, токен становится "подтверждённым" <br/> 5. Сервер отправляет в браузер уведомление о том, что вход разрешён и выдаёт уже рабочий токен. Успех. <br/> (Используется в Steam, Discord, Telegram) <br/> <br/> Второй вариант: <br/> 1. Пользователь вводит логин + пароль и выбирает в качестве второго фактора - приложение на телефоне, где он уже залогинен. <br/> 2. В приложение приходит уведомление о том, что совершена попытка входа, которую нужно подтвердить или отказать. Для дополнительной безопасности также может быть запрошено число, которое отображено на странице входа. <br/> 3. При подтверждении - попытка также подтверждается и в браузер отправляется уведомление. <br/> Используется в сервисах MS, Github, Google <br/> <br/> Оба варианта не отменяют TOTP, так как требуют как минимум одно уже авторизованное устройство. <br/> <br/> <blockquote>но пользователи жалуются, что не удобно вбивать цифры из приложения с телефона.</blockquote> <br/> Пользователи всегда будут жаловаться. Ещё больше они будут жаловаться, если они не смогут залогиниться в ваш сервис, когда у них нет связи на телефоне.