← назад в блог
daily5 августа 2026 г./3 мин чтения

Авторизация работала везде — кроме телефона

Мы внедрили вход в личный кабинет через MyID — национальную систему цифровой идентификации Узбекистана с распознаванием лица. Во время подготовки к релизу выяснилось, что на мобильных устройствах после успешной проверки личности пользователь снова попадал на страницу входа, словно ничего не произошло. Ниже — история о том, как мы подготовили релиз, нашли проблему, скрывавшуюся буквально в одной строке логики, и исправили её.

Снимок экрана — 2026-08-05 в 20.26.21.png

На этой неделе мы выпустили функцию, которой я особенно горжусь: вход в личный кабинет страховой компании через MyID — национальную систему цифровой идентификации Узбекистана — вместо пароля. Достаточно нажать одну кнопку, подтвердить личность с помощью распознавания лица в приложении MyID — и вы в системе. Без пароля и без SMS-кода.

Однако между «функция готова» и «функция выпущена» оказалась целая неделя настоящей инженерной работы: подготовка релиза и одна ошибка, которая существовала только на телефонах.

Выпускать только то, что действительно готово

Хороший релиз — это не только то, что вы выпускаете, но и то, что сознательно не выпускаете. Функция онлайн-расторжения полиса живёт в том же кабинете, но ещё не была готова, поэтому я закрыл её двойной защитой: карточка на главной странице кабинета получила отметку «Скоро» и перестала открываться, а любой, кто вводит адрес страницы напрямую, аккуратно перенаправляется обратно. Обе защиты сделаны так, чтобы в день релиза расторжения их можно было убрать изменением в две строки — скрытие функции не должно превращаться в хирургию, в обе стороны.

Ошибка: успешная проверка лица — в стену

Затем тестирование на реальном телефоне обнаружило неприятную проблему. На компьютере вход через MyID работал безупречно. На телефоне: нажимаешь кнопку, открывается приложение MyID, распознавание лица проходит успешно, приложение возвращает тебя на сайт — и снова страница входа, словно ничего не произошло. Без ошибки, без объяснений. Самый неприятный тип сбоев: всё завершается успешно, а результат молча теряется.

Как мы нашли оборванную связь

На компьютере MyID открывается во всплывающем окне, а основная страница ждёт позади него. Когда MyID завершает проверку, это окно передаёт код входа обратно основной странице через встроенный механизм обмена сообщениями между окнами браузера — как два человека в телефонном разговоре: один идёт за документом, возвращается и зачитывает результат вслух.

На телефоне этот звонок физически не может состояться. Всплывающих окон там нет — браузер полностью покидает страницу и переключается в приложение MyID для проверки. Когда приложение возвращает пользователя, это уже новая страница браузера, и ей некому передать результат. Связь, на которую опирался наш код — одно условие, одна строка — просто перестала существовать. Код авторизации успешно приходил в браузер, не находил обработчика, и система безопасности честно делала свою работу: неизвестный посетитель — на страницу входа. Проблема была вовсе не в распознавании лица, а в доставке результата.

Решение — перестать зависеть от двух окон

Исправление переворачивает исходное предположение. На телефоне мы больше ничего не открываем: сама страница переходит в MyID, а всё, что нужно для возвращения — откуда пользователь пришёл и куда он направлялся — передаётся внутри самого запроса, в поле, которое MyID возвращает без изменений. Когда код приходит обратно, сайт обменивает его на полноценную пользовательскую сессию прямо на месте, без второго окна. На компьютере остался быстрый сценарий со всплывающим окном; на телефоне появился процесс, в котором больше нечему обрываться.

Проверить это до релиза оказалось отдельной задачей: вручную созданные тестовые ссылки возврата, чтобы убедиться, что обработчик срабатывает корректно; браузер на компьютере в режиме эмуляции телефона; и одна настоящая проверка лица, во время которой мы наблюдали, как наши данные проходят через серверы MyID и возвращаются без потерь. Вывод, который я записал для всех будущих интеграций: никогда не строить возврат из авторизации на связи между двумя окнами браузера — как только в процессе появляется нативное мобильное приложение, эта связь обрывается. Сначала постройте сценарий, который переживёт обрыв, а всплывающее окно добавьте как удобство сверху.