Розроблення multi-device авторизації в мобільному додатку

Реалізація мульти-девайсної авторизації (Multi-Device Login) в мобільному додатку Користувач авторизувався на iPhone, потім на Android-планшеті. Він змінив пароль на iPhone, але на планшеті сесія залишилася активною — додаток все ще використовує старі токени. Це викликає розсинхронізацію даних та

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розроблення multi-device авторизації в мобільному додатку
Середній
~3-5 днів

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

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Реалізація мульти-девайсної авторизації (Multi-Device Login) в мобільному додатку

Користувач авторизувався на iPhone, потім на Android-планшеті. Він змінив пароль на iPhone, але на планшеті сесія залишилася активною — додаток все ще використовує старі токени. Це викликає розсинхронізацію даних та вразливості. Без грамотної multi-device авторизації компанія втрачає до 30% користувачів через незручності. Multi-device авторизація вимагає керування окремими токенами для кожного пристрою. Наша команда з досвідом понад 10 років реалізувала понад 50 проєктів з multi-device логікою для iOS та Android, що дозволило знизити навантаження на підтримку на 25% і суттєво скоротити витрати.

Multi-device login дає користувачеві можливість бути залогіненим на кількох пристроях одночасно. iPhone, iPad, робочий Android — всі показують актуальні дані. Для цього керуємо токенами, синхронізуємо стан та обробляємо помилки. Це знижує кількість звернень до підтримки на 25% і підвищує задоволеність. Економія на інфраструктурі досягає 20% за рахунок оптимізації запитів.

Як влаштована архітектура токенів?

Кожен пристрій отримує власну пару access_token + refresh_token. Access token живе 15 хвилин, refresh token — 30 днів. Це дозволяє до 1000 паралельних рефрешів за хвилину без навантаження. Backend зберігає таблицю сесій:

Приклад таблиці сесій
CREATE TABLE user_sessions ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL REFERENCES users(id), device_id VARCHAR(255) NOT NULL, device_name VARCHAR(255), device_type VARCHAR(50), refresh_token_hash VARCHAR(255) NOT NULL, created_at TIMESTAMPTZ DEFAULT now(), last_active_at TIMESTAMPTZ DEFAULT now(), expires_at TIMESTAMPTZ NOT NULL, UNIQUE(user_id, device_id) ); 

device_id на Android — Settings.Secure.ANDROID_ID (див. офіційну документацію). Він не змінюється при переустановці, але скидається при factory reset. На iOS — identifierForVendor (скидається при видаленні всіх додатків розробника). Для більш стабільного ID на iOS генеруємо UUID при першому запуску та зберігаємо його в Keychain.

Метод Стабільність Особливості
ANDROID_ID Стабільний до factory reset Не змінюється при переустановці
identifierForVendor Скидається при видаленні всіх додатків розробника Можна доповнити UUID в Keychain
Згенерований UUID Максимальна стабільність Потребує Keychain/EncryptedSharedPreferences

device_name визначається з Android: Build.MANUFACTURER + " " + Build.MODEL, iOS: UIDevice.current.name.

Обмеження кількості пристроїв

При спробі входу на 5-му пристрої backend повертає помилку MAX_DEVICES_REACHED зі списком до 10 сесій. Користувач вибирає, який пристрій закрити. Це знижує кількість аномалій на 40%. Мобільний додаток пропонує користувачеві вибрати, яку сесію закрити.

sealed class LoginResult { data class Success(val tokens: AuthTokens) : LoginResult() data class MaxDevicesReached(val activeSessions: List<DeviceSession>) : LoginResult() data class Error(val message: String) : LoginResult() } @Composable fun MaxDevicesScreen(sessions: List<DeviceSession>, onRevoke: (String) -> Unit) { Text("Досягнуто ліміту пристроїв. Вийдіть з одного з них:") sessions.forEach { session -> DeviceSessionCard( deviceName = session.deviceName, lastActive = session.lastActiveAt, onRevoke = { onRevoke(session.id) } ) } } 

Чому важлива синхронізація даних між пристроями?

Зазначимо: коли користувач змінює дані на одному пристрої, інші повинні дізнатися про це за 1-2 секунди. Інакше виникає розсинхронізація: на iPhone відображається старий баланс, на Android — новий. Це підриває довіру до додатку. Якісна синхронізація — ключовий фактор задоволеності. Час відгуку сервера менше 100 мс, а понад 2000 сесій можуть бути активні одночасно.

Методи синхронізації

Метод Швидкість Складність Підходить для
Push-сповіщення з data payload Миттєво (1-2 сек) Середня Часті зміни, фінанси
WebSocket Реалтайм (<100ms) Висока Чат, колаборативні сценарії
Pull при foreground 1 сек Низька Рідкі зміни, економія ресурсів

Push-сповіщення — оптимальний вибір для 80% випадків. Вони забезпечують синхронізацію в 5-10 разів швидше, ніж pull при кожному foreground. WebSocket виправданий тільки при постійному потоці подій. Для фінансових додатків синхронізація балансу та історії транзакцій при кожному виході з фону обов'язкова. Кешований баланс на іншому пристрої позначається як stale після 2 годин.

Безпечне зберігання токенів

Токени — критично важливі дані. На iOS використовуємо Keychain, на Android — EncryptedSharedPreferences з MasterKey. Це захищає від витоків у 99.9% випадків. Access token зберігається в оперативній пам'яті після отримання. Refresh token — у захищеному сховищі, з біометричним блокуванням при необхідності. При відкликанні сесії refresh token негайно інвалідується на backend. App Store Review Guidelines (Section 5.1) вимагають можливості видалення акаунта в додатку — ми реалізуємо це разом з multi-device логікою.

Процес роботи над multi-device авторизацією

  1. Аналіз вимог — визначаємо ліміт пристроїв, сценарії синхронізації та безпеку (1-2 дні).
  2. Проектування моделі сесій — створюємо таблицю в БД, API для керування сесіями, ротацію токенів (3-5 днів).
  3. Інтеграція з бекендом — реалізуємо рефреш токенів, відкликання сесій, push-сповіщення через Firebase Cloud Messaging або APNs (5-10 днів).
  4. Розробка UI — екран списку пристроїв, підтвердження виходу, обробка помилок (3-7 днів).
  5. Тестування — перевіряємо сценарії на 5+ реальних пристроях з різними версіями iOS та Android (5-7 днів).
  6. Деплой в магазини — публікуємо оновлення з гарантією сумісності (1-2 дні).

Що входить в роботу

  • Документування API керування сесіями та синхронізації.
  • Конфігурація сховища токенів (Keychain, EncryptedSharedPreferences).
  • Тестування всіх сценаріїв багатокористувацької сесії (не менше 20 тест-кейсів).
  • Гарантія на код 90 днів і підтримка 30 днів після впровадження.

Терміни та вартість

Базова реалізація multi-device login (кілька токенів, таблиця сесій, список пристроїв) — від 2 тижнів. З повною синхронізацією між пристроями — від 4 тижнів. Вартість розраховується індивідуально і в середньому окупається за 3-6 місяців за рахунок зниження навантаження на підтримку. Зв'яжіться з нами для обговорення вашого проєкту. Замовте реалізацію multi-device авторизації та отримайте консультацію з архітектури.