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