Розробка системи відновлення пароля в мобільному додатку

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 або nav stack довше необхідного.

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

SecureField з кнопкою "показати/сховати" — стандарт. textContentType(.newPassword) на iOS пропонуватиме генератор паролів Keychain. Це корисно — краще нехай користувач візьме сгенерований пароль, ніж поставить "qwerty123".

Індикатор надійності пароля — кольорова полоса з розрахунком у реальному часі. Використовуємо zxcvbn (є Swift та Kotlin ports) — більш чесна оцінка, ніж "є цифра + буква + символ".

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

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

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

Терміни

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