Реализация системы авторизации и профилей пользователей

Проект на Unity: казуальный раннер на Android и iOS. Игроки проходят 30 уровней, покупают скины за внутреннюю валюту и реальные деньги. После сброса телефона прогресс исчезает, покупки не восстанавливаются — результат: негативные отзывы, chargeback'и, падение дохода на 40%. Такая ситуация — прямой с

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

Другие услуги студии

VR/AR/MR приложения на заказ

Впечатляйте клиентов и обучайте команду в виртуальной реальности

Разработка игр на Unity

От идеи до релиза — игры, которые запоминаются

3D-моделирование и анимация

Оживим ваш продукт в объёмной графике и анимации

VR-тренажёры промышленного оборудования

Тренируем операторов на технике без риска и простоя

AR-инструкции для производства

Пошаговые подсказки прямо на оборудовании — без бумаги

Safety-тренажёры

Отработка ЧС и техники безопасности без выхода на объект

VR/AR-тренинги

Обучаем персонал сервису, адаптации и soft skills в VR

Обучающие викторины

Проверка знаний в формате игры — легко и без стресса

Корпоративные видеоинструкции

Понятные ролики для обучения сотрудников и клиентов

Геймификация бизнес-процессов

Мотивируем команду через игровые механики в KPI и HR

Приложения для инфокиосков

Интерактивные экраны для магазинов, стендов и офисов

VR/AR-инсталляции

Wow-эффект для брендов на выставках, ивентах и в шоу-румах

Виртуальные выставки и музеи

Ваша экспозиция доступна из любой точки мира — 24/7

Event-квесты и брендированные игры

Запоминающиеся игры для конференций и клиентских ивентов

Часто задаваемые вопросы

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

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1526
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    1030
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    657
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    738
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    142

Проект на Unity: казуальный раннер на Android и iOS. Игроки проходят 30 уровней, покупают скины за внутреннюю валюту и реальные деньги. После сброса телефона прогресс исчезает, покупки не восстанавливаются — результат: негативные отзывы, chargeback'и, падение дохода на 40%. Такая ситуация — прямой сигнал: без серверной авторизации и cloud save монетизация работает вхолостую.

Мы проектируем и внедряем систему авторизации и профилей для игровых проектов на Unity, Unreal Engine, Godot. Опыт — 5+ лет, реализовано 30+ проектов с аудиторией от 10K до 1M+ пользователей. Гарантируем безопасность, account merge и масштабирование под нагрузку.

Какую архитектуру авторизации выбрать?

Guest account (Device ID) → Upgrade to Full Account. Паттерн, который максимально снижает барьер входа. Игрок запускает игру без регистрации — создаётся гостевой аккаунт, привязанный к Device ID / Apple IDFA / Android GAID. Прогресс сохраняется. При желании — конвертирует в полный аккаунт (email, Apple Sign In, Google Play Games).

Ключевой момент — account merge: у игрока может быть гостевой аккаунт на одном устройстве и полный аккаунт на другом. Нужна логика объединения: какой прогресс «побеждает»? Обычно берём тот, что старше или тот, где выше уровень. Это бизнес-решение, которое нужно принять заранее — не в момент первого бага.

Federated Identity (Social Login). Sign In with Apple (обязателен для iOS если есть другие social logins), Google Play Games (Android), Facebook, Steam. Не нужно хранить пароли — провайдер берёт аутентификацию на себя. Получаем JWT-токен, проверяем его подпись на сервере, выдаём собственный session token. По сравнению с кастомной системой, интеграция social login через PlayFab сокращает время разработки примерно на 50% (с 4 недель до 2 недель). Использование готового backend ускоряет внедрение в 2 раза.

Sign In with Apple — особый случай. Apple требует поддержки этого метода если в игре есть хотя бы один другой third-party login. Кроме того, Apple может скрывать email пользователя и выдавать relay email. Это нужно учитывать: нельзя полагаться на email как уникальный идентификатор у Apple-пользователей. Apple Developer Documentation: Sign In with Apple

Email + Password. Классика, но требует: хранение паролей через bcrypt (не MD5 и не SHA1), rate limiting на login endpoint (например, 5 попыток в минуту с одного IP), secure password reset flow через email с time-limited токенами. В managed backend (PlayFab, Nakama) это есть из коробки. В кастомном — нужно реализовать самостоятельно.

Что входит в профиль игрока?

Профиль игрока — не просто {username, email, level}. Правильная структура разделяет данные по типу и частоте обновления:

Аккаунтные данные (persistent, редко меняются):

  • playerId — внутренний UUID, никогда не меняется
  • email, username, avatarUrl
  • linkedAccounts — массив привязанных провайдеров (google, apple, steam)
  • createdAt, lastLoginAt

Игровой прогресс (persistent, часто обновляется):

  • level, experience
  • completedQuests[], unlockedContent[]
  • inventoryId → ссылка на отдельную коллекцию (инвентарь может содержать до 200 предметов)
  • statistics — kills, deaths, playtime, wins/losses

Сессионные данные (ephemeral, не сохраняются):

  • Текущая позиция в матче, временные баффы, сессионная статистика — это в памяти сервера, не в БД

Разделение важно для производительности: при входе в игру загружаем только аккаунтные данные и базовый прогресс. Инвентарь на 200 предметов подгружаем лениво при открытии инвентарного экрана — это сокращает время загрузки на 40%. В проекте с 500 000 MAU мы таким образом снизили пиковую нагрузку на базу данных на 60%.

Почему безопасность критична?

JWT validation на каждом запросе. Session token — JWT с подписью RS256 или HS256. Сервер проверяет подпись и expiry при каждом API-вызове. Срок действия — 24–48 часов, refresh token — 30–90 дней.

Server-side validation для экономических операций. Добавление валюты, применение промокодов, результат матча — только через серверный код. Клиент может показать результат оптимистично, но окончательное состояние определяет сервер. Иначе — memory editor дают игроку миллион монет за 5 минут.

Rate limiting. Login endpoint: максимум 5 попыток в минуту с одного IP. Это защита от brute force. В PlayFab и Nakama встроено. В кастомном — через Redis + sliding window.

Метод авторизации Время интеграции Особенности
Guest (Device ID) 1–2 дня Низкий барьер, нет восстановления
Social Login 3–7 дней Apple Sign In обязателен на iOS, relay email
Email + Password 5–10 дней Требует bcrypt, rate limiting, password reset
Federated Identity 2–4 недели Зависит от количества провайдеров

Как мы решали проблему account merge на реальном проекте?

Реальный кейс: казуальный раннер, Android+iOS. Изначально — local save только. После добавления монетизации (скины за IAP) — срочно нужен cloud save. Добавили PlayFab auth (Guest + Google Play Games + Apple Sign In) за 2 недели. Проблема, которую не предвидели: часть игроков имела прогресс на Android под google-аккаунтом и пытались войти на iPad — account merge выдавал конфликт. Потребовался дополнительный экран «выберите, какой прогресс сохранить» + 3 дня доработки. Решение: при конфликте показываем оба профиля, игрок выбирает. Автоматика — если разница в уровне больше 5, берёт старший. Этот подход снизил количество обращений в поддержку на 30% и уменьшил отток игроков после смены устройства на 15%.

Процесс реализации

  1. Выбор identity provider и проектирование Login Flow: Guest → Social → Email. Это UX-решение с техническими последствиями.
  2. Проектирование схемы данных профиля с учётом будущего роста (количество предметов, клановая система).
  3. Реализация server-side validation для всех экономических операций.
  4. Тестирование edge cases: потеря соединения во время сохранения, дублирование аккаунтов при повторной установке, expiry токена в середине игровой сессии.
  5. Деплой и поддержка в течение 30 дней.

Что входит в работу?

  • Архитектура auth flow и дизайн схемы данных
  • Интеграция guest auth, social logins, email/password
  • Реализация JWT-токенов, refresh logic
  • Server-side validation всех экономических операций
  • Написание документации и передача доступов
  • Поддержка в течение 30 дней после деплоя
Масштаб задачи Ориентировочные сроки
Guest auth + basic cloud save (PlayFab/Nakama) 1–2 недели
Full auth (Social logins + email) + profile 2–4 недели
Кастомная система авторизации + JWT + PostgreSQL 3–6 недель
Account merge + migration с local save 1–2 недели

Стоимость рассчитывается после анализа требований. Чтобы получить оценку под ваш проект, свяжитесь с нами — мы подготовим коммерческое предложение с учётом стека и объёма работ. Получите консультацию по архитектуре авторизации — это бесплатно.