Используйте аутентификацию в игровых сервисах Google Play для оптимизации процесса аутентификации пользователей на платформе вашей игры. Инициализируйте SDK игровых сервисов Play для активации аутентификации, что избавит от необходимости в отдельном процессе аутентификации на платформе.
Свяжите учетные записи пользователей, чтобы обеспечить непрерывность и возможность воспроизведения на разных устройствах
Игроки играют в любимые игры на самых разных устройствах и платформах, включая мобильные телефоны, планшеты и ПК. Главное ожидание от них — возможность легко продолжить игру с того места, где они остановились, независимо от выбранного устройства.
Серьёзным препятствием, часто приводящим к отказу пользователей от игры, является необходимость отдельного входа на каждом новом устройстве. Пользователям необходимо мгновенное погружение в игру без лишних отвлекающих факторов.
Для обеспечения непрерывной непрерывности и возможности воспроизведения на разных устройствах необходимо реализовать две ключевые функции:
- Привязка аккаунта
- Сохранить в облаке
Процесс аутентификации в игровых сервисах Play предоставляет гибкие возможности для идентификации игроков. Эти возможности позволяют интегрировать игровые сервисы Play с вашим существующим решением для идентификации.
Новая интеграция с игровыми сервисами Play
Для игр без существующей интеграции с Play Games Services API Recall упрощает настройку бэкэнда за счет управления связями учетных записей и сохранения связи между игровой учетной записью пользователя и его учетной записью Play Games Services.
Привязка аккаунтов с помощью Recall API
Recall API — рекомендуемое решение для связывания учётных записей пользователей в кроссплатформенных играх. Этот API особенно полезен для игр без интеграции с игровыми сервисами Play или для тех, которые используют дополнительные решения для аутентификации на платформе, помимо игровых сервисов Play.
Recall API упрощает настройку бэкэнда вашей игры за счет управления связями учетных записей.
- Упрощенная внутренняя часть: API упрощает настройку внутренней части игры для привязки учетных записей.
- Связи, управляемые Play: Play сохраняет связи между игровыми учетными записями пользователей (включая сторонние учетные записи) и их учетными записями в игровых сервисах Play.
- Восстановление прогресса: разработчики генерируют и отправляют токены отзыва в Play, которые затем можно извлечь для восстановления игрового прогресса пользователя.
При реализации Recall API разработчики должны убедиться, что токены Recall представляют собой непрозрачные строки. Эти токены не должны содержать никакой конфиденциальной или персонально идентифицируемой информации (например, имени, адреса электронной почты или демографических данных) об игроках.
При генерации токенов отзыва игры должны использовать надежные алгоритмы шифрования для защиты пользовательских данных и поддержания безопасности.
Более подробную информацию о работе Recall см. в разделе Recall API .
Чтобы реализовать функцию Recall API, ознакомьтесь со статьей Интеграция API Recall сервисов Play Games в вашу игру .
Управление несколькими учетными записями с помощью Recall API
При управлении несколькими учётными записями одного пользователя вы можете рассматривать каждую учётную запись как отдельную персону. Такой подход позволяет создавать персонализированные решения, основанные на контексте конкретного пользователя.
Чтобы реализовать этот подход, выполните следующие шаги:
- Создайте уникальный токен для каждой персоны. См. раздел «Настройка игрового клиента» .
- Свяжите эти токены с учётной записью Play Games Services с помощью Recall API. См. раздел «Токены магазина» .
- Установите политику разрешения для сценариев, когда учётная запись Play Games Services связана с несколькими персонами. См. раздел «Последний токен отзыва для всех игр, принадлежащих учётным записям разработчиков» .
Несмотря на то, что доступны различные варианты политики (например, автоматическое восстановление последней учётной записи), мы настоятельно рекомендуем выводить пользователю запрос на восстановление. Этот запрос должен предлагать пользователю выбрать учётную запись для восстановления, обеспечивая понятный и удобный интерфейс.
Интеграция существующих игровых сервисов Play
В этом разделе объясняется, как интегрировать игру с игровыми сервисами Play, привязав учётные записи игроков. Узнайте, как использовать идентификаторы игроков для идентификации аутентифицированных игроков и управления несколькими игровыми учётными записями для одного пользователя игровых сервисов Play.
Привязать к Player_id
Идентификатор игрока — это идентификатор учётной записи игрока в игровых сервисах Play. Ваша игра может получить идентификатор игрока для любого игрока, аутентифицированного в вашей игре с помощью игровых сервисов Play.
Игры, в которых бэкэнд настроен с помощью Play Games Services Player_Id , или игры, требующие поддержки детей, должны использовать Player_Id и привязывать свои игровые и сторонние учетные записи к Player_Id .
Узнайте, как ведут себя идентификаторы игроков:
- Единообразие в пределах игры: идентификатор игрока остается неизменным для пользователя на разных устройствах, когда он играет в одну и ту же игру.
- Несоответствие между играми: идентификаторы игроков не всегда совпадают, когда пользователь играет в разные игры.
Более подробную информацию см. в разделе Идентификаторы игроков следующего поколения .
Управление несколькими учетными записями для одного пользователя с привязкой
Чтобы связать несколько учетных записей пользователей с одной учетной записью Play Games Services, создайте в таблице сопоставление «один ко многим».
Кроссплатформенная идентификация Google с использованием функции «Войти через Google»
«Войти через Google» (SiwG) — это основное решение Google для идентификации, которое позволяет разработчикам игр безопасно получать информацию из профилей своих игроков: их имена, адреса электронной почты и фотографии профиля.
Ключевым преимуществом функции «Войти через Google» является её широкая доступность на всех платформах, включая веб-сайты , Android и iOS . Она обеспечивает быстрый, безопасный и привычный процесс входа, который игроки уже знают и которым доверяют.
Свяжите с sub токена Google ID
Для создания бесперебойного кроссплатформенного взаимодействия можно реализовать стратегию аутентификации, которая связывает систему учётных записей вашей игры с уникальным идентификатором учётной записи Google. Этот подход использует оптимизированную аутентификацию Play Games Services на Android, а также стандартный вход с помощью Google SDK на других платформах, таких как iOS и веб-сайты.
Ключевым элементом этой стратегии является sub поле токена Google ID . Поле sub (или «subject») — это уникальный и постоянный идентификатор учётной записи пользователя Google. Этот идентификатор будет использоваться в качестве «моста» для связывания всех сеансов игрока с одной игровой учётной записью в вашей серверной части.
Вот высокоуровневый поток:
- На Android: ваша игра инициализирует Play Games Services SDK для автоматического запуска аутентификации на устройствах Android. Вы настраиваете интеграцию Play Games Services v2 для запроса трёх областей входа :
email,profileиopenid. Это те же области, которые запрашивает стандартный Sign in with Google SDK. Это позволяет получить токен ID , содержащийsubполе игрока. - В веб-версии и iOS: ваша игра использует стандартные SDK «Вход через Google» для веб-версии , «Вход через Google» для iOS и macOS . При входе пользователя в систему SiwG SDK предоставляет идентификатор, который также содержит
subполе пользователя. - Привязка к аккаунту: поскольку пользователь входит в систему с одной и той же учётной записью Google на обеих платформах, отображаемое
subполе будет идентичным. Вы можете с уверенностью привязать этоsubзначение к своему внутреннему идентификатору пользователя в вашем решении для идентификации, создав унифицированный пользовательский интерфейс.
Интеграция на Android
На Android вы будете использовать SDK Google Play Games Services в качестве основной точки интеграции. Ключевым моментом является настройка клиента входа в Google Play Games Services для запроса дополнительных областей входа . Это позволит вам получить код авторизации на стороне сервера, который ваш бэкенд может обменять на идентификационный токен, содержащий информацию о пользователе, включая уникальное sub поле.
На высоком уровне реализация включает в себя:
Настройка идентификаторов клиентов в едином проекте. Перед интеграцией необходимо настроить Play Games Services в консоли Google Play, чтобы получить идентификаторы клиентов OAuth 2.0.
Настройка игровых сервисов Play. Прежде чем начать, вам необходимо добавить свою игру в консоль Google Play и интегрировать аутентификацию платформы игровых сервисов Play с вашей игрой.
Добавьте кнопку «Войти через Google»: на странице входа в игру или на экране настроек пользователя добавьте кнопку «Войти через Google». Эта кнопка активирует вход или переход по ссылке вверх. При создании этой кнопки рекомендуется следовать рекомендациям по брендингу «Войти через Google» . Как минимум, на кнопке должно быть чётко указано «Google» или «Войти через Google». Ссылка на руководство также предоставляет загружаемые UX-ресурсы, соответствующие требованиям и подходящие для использования в вашей игре.
Запрос кода авторизации сервера с областями входа: когда игрок нажимает кнопку, игра запрашивает одноразовый код авторизации сервера. Самый важный шаг — настроить этот запрос, включив следующие области входа :
EMAIL,PROFILEиOPEN_ID.Способ настройки зависит от вашей среды разработки:
Для Java/Kotlin: см. руководство по получению кода аутентификации сервера с помощью
requestServerSideAccess.Для Unity: см. руководство по получению кодов авторизации в Unity .
Обмен кодом авторизации и проверкой токена ID на бэкенде: отправьте код авторизации из предыдущего шага на ваш бэкенд-сервер. На сервере следуйте стандартному руководству по обмену кодами OAuth 2.0, чтобы заменить код на токен ID, токен доступа и токен обновления. Как описано в руководстве, необходимо проверить токен ID на вашем сервере.
Привяжите
subполе: после успешной проверки токена идентификатора извлекитеsubполе из его полезной нагрузки. Используйте этоsubзначение в качестве уникального ключа для идентификации Google в вашем решении для идентификации.Если это
subуже существует в вашей базе данных, значит, пользователь уже подключался ранее. Войдите в соответствующий игровой аккаунт.Если это
subзначение не существует , вы можете либо создать новую учетную запись пользователя в системе учетных записей вашей игры, связанную с этимsub, либо подключиться к существующей учетной записи пользователя в вашей системе учетных записей, сопоставив информацию о пользователе (например, адрес электронной почты), предоставленную в идентификаторе токена.
Интеграция на iOS, Web и других платформах
На платформах, отличных от Android, iOS, Web или ПК, вы будете использовать стандартный вход с помощью Google SDK. Цель та же, что и в Android: безопасно получить токен Google ID, отправить его в бэкенд и использовать sub поле для привязки учётной записи.
На высоком уровне реализация включает в себя:
Интеграция на стороне клиента: Следуйте официальной документации, чтобы интегрировать SDK «Войти через Google» на вашу платформу. Эти руководства охватывают весь процесс работы на стороне клиента, от отображения кнопки «Войти через Google» до получения токена ID.
Для веб-браузера: войдите в систему через Google для веб-браузера
Для iOS: вход через Google для iOS и macOS
Для платформ без специального SDK (например, пользовательского игрового движка или сборки для ПК) вы можете вручную реализовать поток веб-сервера OAuth 2.0 для получения необходимых токенов.
Логика бэкенда: отправьте токен ID (или код авторизации) на ваш бэкенд. Затем ваш сервер выполняет ту же самую логику проверки и привязки
sub, как описано в шагах 4 и 5 раздела «Интеграция с Android».
Поскольку sub во всех этих потоках «Войти через Google» идентично полю, извлеченному из потока «Google Play Games Services» на Android (для той же учетной записи Google), этот процесс успешно связывает учетную запись пользователя на всех платформах.