Разработка системы восстановления пароля в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Разработка системы восстановления пароля в мобильном приложении
Средний
от 1 дня до 3 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Разработка системы восстановления пароля в мобильном приложении

Восстановление пароля — один из самых уязвимых flow с точки зрения безопасности. При этом реализуется часто небрежно: "отправили email — дальше не наша зона ответственности". На деле мобильная часть несёт ответственность за несколько критических моментов.

Уязвимости, которые чаще всего пропускают

User enumeration. Форма "Введите email" не должна сообщать, зарегистрирован ли этот адрес. Сообщение "Если email зарегистрирован, мы отправим письмо" — стандартная практика. Сообщение "Такого пользователя не существует" — раскрытие информации об аккаунтах. Некоторые проекты считают это незначительным — но в контексте GDPR это потенциально проблема.

Rate limiting на клиенте. Кнопка "Отправить повторно" должна быть заблокирована на 60–120 секунд после нажатия. Без этого пользователь (или скрипт) может spam-бомбардировать чужой email восстановительными письмами. Rate limiting нужен и на сервере, но клиент не должен облегчать атаку.

Deep link security. Ссылка восстановления вида myapp://reset-password?token=xyz — надо обработать корректно. На Android, если не настроены App Links с Digital Asset Links, любое приложение может перехватить custom scheme. Используем HTTPS Universal Links (iOS) и HTTPS App Links (Android).

Основной flow

  1. Пользователь вводит email → кнопка "Восстановить" (деактивирована до валидного email).
  2. Запрос на сервер → показываем "Проверьте почту" независимо от результата (нет user enumeration).
  3. В письме — ссылка с одноразовым токеном и expires_in (обычно 15–60 минут).
  4. Пользователь тапает ссылку → приложение открывается через Universal/App Link.
  5. Токен из URL → экран "Новый пароль".
  6. Пользователь вводит пароль дважды (или один раз с кнопкой "показать").
  7. PATCH/POST на сервер с токеном + новым паролем.
  8. Успех → автоматический вход (получаем access/refresh tokens) → главный экран.

Обработка deep link в приложении

Если приложение не установлено — ссылка должна открыть web-версию (App Clip или просто веб-форма). Это настраивается через Associated Domains + apple-app-site-association (iOS) и App Links + assetlinks.json (Android).

В SwiftUI + AppCoordinator:

// SceneDelegate или App с @main
.onOpenURL { url in
    guard let token = url.queryParameters["token"] else { return }
    coordinator.navigate(to: .resetPassword(token: token))
}

Токен передаём в ViewModel Reset-экрана, не держим его в URL или навигационном стеке дольше необходимого.

Экран нового пароля

SecureField с кнопкой "показать/скрыть" — стандарт. textContentType(.newPassword) на iOS предложит генератор паролей Keychain. Это полезно — лучше пусть пользователь возьмёт сгенерированный пароль, чем поставит "qwerty123".

Индикатор надёжности пароля — цветовая полоса с расчётом в реальном времени. Используем zxcvbn (есть Swift и Kotlin порты) — более честная оценка, чем "есть цифра + буква + символ".

После успешной смены — инвалидируем все активные сессии (это серверная задача, но мобильное приложение должно принять новые токены и убрать старые из Keychain).

SMS-recovery как альтернатива

OTP на телефон вместо email-ссылки. Плюс: не надо ждать письмо, не зависит от спам-фильтров. Минус: SIM swap атака — злоумышленник переоформляет номер и перехватывает OTP. Для высокочувствительных приложений SMS recovery без дополнительного фактора недостаточна.

Сроки

Full flow восстановления пароля (email-форма, deep link handling, экран нового пароля, автологин) — 4–7 рабочих дней на одну платформу. Настройка Universal/App Links + Apple App Site Association, если ещё не сделаны — плюс 1–2 дня.