Разработка 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 авторизации и получите консультацию по архитектуре.