Чтобы смартфоном щёлкнул и готово, без вебкам челленджа, всё по HTTP.
Согласование секрета:
- управляющей утилитой генерим, показываем на экране тем же самым QR
- приложением фоткаем, сохраняем на смартфоне секрет в хранилище, при желании навешиваем биометрию
Flow:
- генерим payload, шифруем общим секретом, отправляем на сервер, показываем QR с id
- приложением фоткаем QR, по id забираем с сервера payload, расшифровываем, показываем на экране, предлагаем aprove/decline и отправляем ответ
- чекаем сервер на предмет ответа
Или сложно и не нужно?