Разработка multi-device авторизации в мобильном приложении

Пользователи всё чаще входят в приложение с нескольких устройств, и если сессии не синхронизированы, это приводит к рассинхронизации данных и рискам безопасности. Мы разрабатываем multi-device авторизацию, которая обеспечивает надёжное управление сессиями и актуальность данных на каждом устройстве. Наша команда реализует проект под ключ — от аудита до внедрения и последующей поддержки.

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

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

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

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

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

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

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

  • Разработка мобильного приложения для компании FEEDME
    Разработка мобильного приложения для компании FEEDME
    1009
  • Разработка мобильного приложения для компании XOOMER
    Разработка мобильного приложения для компании XOOMER
    902
  • Разработка мобильного приложения для компании RHL
    Разработка мобильного приложения для компании RHL
    1332
  • Разработка мобильного приложения для компании ZIPPY
    Разработка мобильного приложения для компании ZIPPY
    1180
  • Разработка мобильного приложения для компании Affhome
    Разработка мобильного приложения для компании Affhome
    1106
  • Разработка мобильного приложения для компании FLAVORS
    Разработка мобильного приложения для компании FLAVORS
    714