SDK для Unreal Engine / Аутентификация
  На главную

SDK для Unreal Engine

Аутентификация

Узнайте о дополнительных настройках из наших инструкций.

Как настроить OAuth 2.0 аутентификацию

Протокол OAuth 2.0 использует короткоживущие токены с долговременной авторизацией (refresh-токены) вместо долгоживущих токенов. Refresh-токен позволяет длительное время использовать ваше приложение без необходимости повторного ввода имени пользователя и пароля. При этом исключается вероятность того, что данные авторизации пользователя будут скомпрометированы.

Протокол OAuth 2.0 используется для авторизации:

  • через имя пользователя или email-адрес и пароль;
  • через социальные сети;
  • через Steam.

При включении настройки регистрация и авторизация пользователя выполняются с помощью вызова методов API Register new user и JWT auth by username and password. В плагине Login & Account System для авторизации по протоколу OAuth 2.0 предусмотрены те же методы, что и для авторизации с использованием токена в формате JWT. В структуре FXsollaAuthToken refresh-токен указывается в поле RefreshToken.

Примечание
При включении настройки процесс авторизации в вашем приложении для пользователя не меняется.

Для настройки авторизации по протоколу OAuth 2.0:

  1. Настройте авторизацию по протоколу OAuth 2.0 для варианта Авторизации в Личном кабинете.
  2. Настройте плагин для вашего проекта UE4.

Настройка авторизации по протоколу OAuth 2.0 для варианта Авторизации в Личном кабинете

  1. Перейдите к вашему проекту в Личном кабинете.
  2. Выберите пункт Авторизация в боковом меню.
  3. Нажмите Настроить в панели с вариантом авторизации.
  4. Перейдите к блоку Безопасность и выберите раздел OAuth 2.0 аутентификация.
  5. Нажмите Добавить OAuth 2.0.
  6. Укажите URI переадресации OAuth 2.0 и нажмите Подключить.
  7. Скопируйте и сохраните ID клиента.

Настройка плагина в проекте Unreal Engine

  1. Откройте проект UE4 в Unreal Editor.
  2. Перейдите в Settings > Project Settings > Plugins > Xsolla Login.
  3. Установите флажок Use OAuth 2.0.
  4. В поле Client ID укажите ID клиента, полученный при настройке авторизации по протоколу OAuth 2.0 в Личном кабинете.

Для работы с refresh-токенами в плагине Login & Account System реализованы следующие методы:

  • RefreshToken — обновляет токен, если срок его действия истек;
  • ExchangeAuthenticationCodeToToken — обменивает код аутентификации пользователя на действительный JWT.

Для дополнительной проверки пользователя при авторизации по протоколу OAuth 2.0 в методах RegisterUser, GetSocialAuthenticationUrl и AuthenticateWithSessionTicket предусмотрен параметр State. Этот параметр используется для сдерживания возможных атак CSRF.

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Скрыть

Как использовать собственную систему авторизации

Внимание

Используйте эту инструкцию для работы только со следующими плагинами:

  • Game Commerce
  • Cross-Buy

Поддержка плагина Cross-Buy будет прекращена в марте 2022. Вы можете продолжить использовать его, но он не будет обновляться и дополняться новыми возможностями. Рекомендуется перейти на использование плагина Game Commerce. Он содержит все классы и методы, необходимые для работы с продуктами Иксоллы.

Вы можете интегрировать SDK с собственной системой авторизации. В этом случае необходимо реализовать идентификацию пользователя по custom ID (ID пользователя, сформированный на вашем сервере) для открытия внутриигрового магазина, проведения платежа и управления инвентарем.

Сценарий взаимодействия c серверами Иксоллы при использовании собственной системы авторизации:

  1. Ваш клиент отправляет на ваш сервер запрос на аутентификацию.
  2. Ваш сервер аутентифицирует пользователя и отправляет на сервер Иксоллы запрос на получение JSON Web Token (JWT) пользователя, передавая custom ID.
  3. Сервер Иксоллы возвращает JWT пользователя.
  4. Ваш сервер передает JWT пользователя клиенту.
  5. Полученный JWT пользователя используется методами SDK вместо авторизационного токена для открытия внутриигрового магазина, проведения платежа и управления инвентарем.

Чтобы использовать собственную систему авторизации совместно с продуктами Иксоллы:

  1. В Личном кабинете настройте серверный OAuth 2.0-клиент.
  2. Реализуйте получение серверного JWT.
  3. Реализуйте получение JWT пользователя.
  4. Реализуйте логику работы с внутриигровым магазином, покупками и инвентарем с использованием JWT пользователя.

Примечание
Если вы используете систему авторизации PlayFab или Firebase, реализуйте получение JWT пользователя с помощью готовых расширений Иксоллы для BaaS.

Настройка серверного OAuth 2.0-клиента

  1. Откройте ваш проект в Личном кабинете и перейдите в раздел Авторизация.
  2. Нажмите Настроить в панели нужного варианта авторизации.
  3. На странице навигации перейдите к блоку Безопасность и выберите раздел OAuth 2.0 аутентификация.
  4. Нажмите Добавить OAuth 2.0.
  5. Укажите URI переадресации OAuth 2.0.
  6. Установите флажок Конфиденциальная (рекомендуется для server-to-server соединения).
  7. Нажмите Подключить.
  8. Скопируйте и сохраните ID клиента и секретный ключ.

Получение серверного JWT

В серверной части вашего приложения реализуйте метод для получения серверного JWT с использованием запроса Generate JWT. Запрос должен содержать следующие параметры:

Примечание
Срок жизни серверного JWT — 59 минут.

Получение JWT пользователя

В серверной части вашего приложения реализуйте метод для получения JWT пользователя с использованием запроса Auth by custom ID. Запрос должен содержать заголовок X-Server-Authorization: <server_JWT>, где <server_JWT> — серверный JWT, полученный на предыдущем шаге.

Примечание
Срок жизни JWT пользователя — 24 часа. Чтобы изменить это значение, обратитесь к аккаунт-менеджеру проекта или напишите на integration@xsolla.com.

Использование JWT пользователя

Используйте методы SDK для открытия внутриигрового магазина, проведения платежа и управления инвентарем, при этом передайте JWT пользователя вместо авторизационного токена.

Примеры использования токена приведены в сценариях:

Реализуйте получение нового JWT пользователя после истечения его срока жизни. Рекомендуется получать новый токен в фоновом режиме, без повторного входа пользователя в приложение.

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Скрыть

Как настроить нативную аутентификацию через социальные сети

Нативная авторизация позволяет игрокам войти в ваше приложение через установленные приложения, использующие аккаунты социальных сетей. В настоящее время для SDK реализована нативная авторизация через следующие социальные сети:

  • Google
  • Facebook

Примечание
Функция нативной авторизации через социальные сети доступна в:
  • Плагин Game Commerce версии 0.5.7 и выше для UE4;
  • Плагин Login & Account System версии 0.3.0 и выше для UE4;
  • Плагин Cross-Buy версии 0.3.0 и выше для UE4.

Чтобы настроить нативную авторизацию:

  1. Создайте сборку вашего проекта UE4 под Android.

Примечание
Для дальнейшей настройки нативной авторизации вам понадобится имя пакета вашего Android-приложения, которое можно найти в разделе Edit > Project Settings > Platforms > Android в поле Android Package Name (‘com.YourCompany.Project’ [PROJECT] is replaced with project name).
  1. Настройте авторизацию через социальные сети на стороне Xsolla:
    1. Для Facebook и Google настройте социальные сети в Личном кабинете.
    2. Для WeChat и QQ обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.comcsm@xsolla.com.
  2. Настройте SDK для проекта Unreal Engine.
  3. Реализуйте логику аутентификации на стороне приложения.

Настройка страницы приложения в личном кабинете разработчика Facebook

  1. Откройте настройки приложения в личном кабинете разработчика Facebook.
  2. Перейдите в раздел Настройки > Основное.
  3. Нажмите Добавить платформу и выберите Android.
  4. В поле Название пакета Google Play укажите имя пакета вашего Android-приложения.
  5. В поле Название класса укажите полное имя класса Activity (по умолчанию — com.epicgames.ue4.GameActivity).
  6. Сгенерируйте хеш-ключ и укажите его в поле Ключевые хеш-адреса.
  7. Нажмите Сохранить изменения.

Для дальнейшей настройки нативной авторизации вам понадобятся Идентификатор приложения и Секрет приложения, которые можно найти в настройках приложения в разделе Настройки > Основное.

Настройка проекта в Google API Console

  1. Перейдите в Google API Console.
  2. Нажмите Создать проект.
  3. Укажите Название проекта и Местоположение, нажмите Создать.
  4. Перейдите в созданный проект и в боковом меню нажмите Окно запроса доступа OAuth.
  5. Установите флажок Внешнее и нажмите Создать.
  6. Укажите необходимые параметры и нажмите Сохранить.
  7. В боковом меню выберите Учетные данные.
  8. Создайте клиент OAuth 2.0 для вашего Android-приложения:
    1. Нажмите Создать учетные данные и выберите пункт Идентификатор проекта OAuth.
    2. В поле Тип приложения укажите Android.
    3. Укажите Имя.
    4. В поле Название пакета укажите имя пакета вашего Android-приложения.
    5. Сгенерируйте SHA-ключ.
    6. В поле Контрольная сумма сертификата SHA-1 укажите SHA-ключ, сгенерированный на предыдущем шаге.
    7. Нажмите Создать.
    8. Нажмите OK.
  1. Создайте клиент OAuth 2.0 для веб-приложения:
    1. Нажмите Создать учетные данные и выберите пункт Идентификатор проекта OAuth.
    2. В поле Тип приложения укажите Веб-приложение.
    3. Укажите Имя.
    4. Нажмите Добавить URI в разделе Разрешенные URI перенаправления и укажите URI https://login.xsolla.com/api/social/oauth2/callback.
    5. Нажмите Создать.
    6. Нажмите OK.

Для дальнейшей настройки нативной авторизации вам понадобятся Идентификатор клиента и Секретный код клиента, которые можно найти в настройках идентификатора клиента для веб-приложения.

Настройка социальных сетей для варианта авторизации в Личном кабинете Xsolla

  1. Перейдите к вашему проекту в Личном кабинете.
  2. Нажмите Авторизация в боковом меню и перейдите в раздел Варианты авторизации > ваш вариант авторизации > Социальные сети.
  3. Для настройки авторизации через Facebook:
    1. Нажмите Редактировать в панели Facebook и измените статус на Отключен.
    2. В поле Application ID укажите Идентификатор приложения из личного кабинета разработчика Facebook.
    3. В поле Application Secret укажите Секрет приложения из личного кабинета разработчика Facebook.
    4. Нажмите Подключить.
  1. Для настройки авторизации через Google:
    1. Нажмите Редактировать в панели Google и измените статус на Отключен.
    2. В поле Application ID укажите Идентификатор клиента из Google API Console для веб-приложения.
    3. В поле Application Secret укажите Секретный код клиента из Google API Console для веб-приложения.
    4. Нажмите Подключить.

Настройка SDK для проекта Unreal Engine

  1. Откройте ваш проект UE4.
  2. Перейдите в раздел Settings > Project Settings > Plugins > Xsolla Login > Xsolla Login Android.
  3. Установите флажок Allow Native Auth.
  4. В поле Facebook App Id укажите Идентификатор приложения из личного кабинета разработчика Facebook.
  5. В поле Google App Id укажите Идентификатор клиента из Google API Console для веб-приложения.
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Скрыть

Как подключить нативную аутентификацию через Steam

Нативная авторизация позволяет игрокам войти в ваше приложение через установленный клиент Steam. После подключения нативной авторизации вы также можете добавить в приложение оплату через Steam.

Чтобы настроить нативную авторизацию:

  1. Подключите автоматическую аутентификацию через Steam в Личном кабинете.
  2. Настройте ваш проект UE4.
  3. Настройте обработку событий.
  4. Проверьте авторизацию через Steam.

Настройка проекта Unreal Engine

  1. Перейдите в каталог Config вашего проекта UE4.
  2. Добавьте строки ниже в файл DefaultEngine.ini, для параметра SteamDevAppId укажите ID вашего приложения в Steam.
Copy
Full screen
Small screen
    [/Script/Engine.GameEngine]
    +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
    
    [OnlineSubsystem]
    DefaultPlatformService=Steam
    
    [OnlineSubsystemSteam]
    bEnabled=true
    SteamDevAppId=480
    
    [/Script/OnlineSubsystemSteam.SteamNetDriver]
    NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
    
    1. Откройте проект в Unreal Editor.
    2. Перейдите в Settings > Plugins > Online Platform.
    3. В разделе Online Subsystem Steam установите флажок Enabled и нажмите кнопку Restart Now, чтобы сохранить настройки и перезапустить Unreal Editor.

    Настройка обработки событий

    1. Для проекта добавьте ноды, как показано ниже:
      Для авторизации пользователя через Steam необходимо получить session ticket с помощью метода GetSessionTicket. Полученное значение необходимо передать при вызове метода AuthenticateWithSessionTicket. В результате вы получите токен, который можно использовать при вызове API.
    1. Для дополнительной проверки токена добавьте вызов метода ValidateToken (опционально).

    Проверка авторизации через Steam

    1. Создайте сборку вашего проекта UE4 для stand-alone платформы.
    2. Запустите приложение Steam и авторизуйтесь в нем.
    3. Запустите ваше приложение. Если настройка выполнена правильно, откроется всплывающее окно Steam.
    Была ли статья полезна?
    Спасибо!
    Что может сделать страницу еще лучше? Сообщение
    Жаль, что так произошло
    Расскажите, почему статья не была полезна. Сообщение
    Спасибо за обратную связь!
    Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
    Скрыть

    Как настроить инвалидацию токена

    Инвалидация токена позволяет повысить безопасность данных авторизации пользователя в вашем приложении. При включении настройки, с каждым входом пользователя в систему его предыдущий токен доступа становится недействительным и генерируется новый токен.

    Примечание
    Вы можете настроить инвалидацию токена для авторизации с использованием токена в формате JWT. При авторизации по протоколу OAuth 2.0 инвалидация токена предусмотрена самим протоколом и ее не нужно настраивать отдельно.

    При использовании SDK инвалидация существующего токена и генерация нового выполняется при вызове методов API Auth by username and password и Auth via social network, если для параметра with_logout указано значение 1.

    Для включения инвалидации токена в вашем проекте UE4:

    1. Перейдите в Settings > Project Settings > Plugins > Xsolla Login.
    2. Установите флажок Invalidate Existing Sessions.

    Была ли статья полезна?
    Спасибо!
    Что может сделать страницу еще лучше? Сообщение
    Жаль, что так произошло
    Расскажите, почему статья не была полезна. Сообщение
    Спасибо за обратную связь!
    Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
    Скрыть

    Как настроить авторизацию в приложении через Launcher

    Для доставки вашего приложения пользователям и его обновления вы можете использовать Лаунчер Иксоллы. Лаунчер содержит встроенный инструмент авторизации. Чтобы избежать необходимости повторного ввода имени пользователя и пароля, настройте авторизацию в вашем приложении через Лаунчер.

    Внимание
    Для использования Лаунчера должен быть настроен продукт Авторизация. Использование другой системы авторизации не поддерживается.

    Настройка совместной работы SDK и Launcher

    1. Настройте Лаунчер в Личном кабинете.
    Примечание
    В файле config.json достаточно изменить значения для следующих объектов:
    • launcher_project_id — укажите ID лаунчера, который можно найти в разделе Лаунчер > Общие настройки > Общая информация Личного кабинета;
    • login_project_id — укажите ID варианта авторизации, который можно найти в разделе Лаунчер > Общие настройки > Настройки аутентификации Личного кабинета.
    1. Кастомизируйте интерфейс лаунчера.
    Внимание
    При интеграции SDK с серверами Иксоллы используется Commerce API, поэтому магазин Лаунчера не поддерживается.
    1. Реализуйте в вашем приложении логику авторизации через Лаунчер.
    2. Сгенерируйте установочный файл лаунчера и архив с его сборкой.
    3. Создайте сборку приложения.
    4. Загрузите сборку приложения на сервер обновлений Иксоллы.

    Реализация логики авторизации через Launcher

    Сценарий авторизации в приложении через Лаунчер:

    1. Пользователь авторизуется в Лаунчере.
    2. Пользователь устанавливает и запускает приложение.
    3. Лаунчер запускает приложение с передачей параметров пользователя через командную строку. Токен для авторизации передается в параметре xsolla-login-token.
    4. Приложение обрабатывает параметры командной строки и получает токен.
    5. Приложение валидирует полученный токен.
    6. Приложение автоматически авторизует пользователя, не отображая страницу авторизации.

    Пример реализации описанной логики приведен в блупринте W_LoginDemo демопроекта.

    Примечание
    Полученный токен используется методами SDK для открытия внутриигрового магазина, проведения платежа и других операций.

    Создание сборки приложения

    1. Откройте ваш проект UE4.
    2. В Content Browser откройте карту авторизации пользователя, в которой выполняется обработка токена.
    3. В главном меню выберите пункт Edit > Project Settings.
    4. Перейдите в раздел Project> Maps & Modes и в поле Game Default Map выберите ранее открытую карту авторизации.
    1. Перейдите в раздел Plugins > Xsolla Login.
    2. В поле Project ID укажите ID проекта, который можно найти в разделе Настройки проекта > ID проекта Личного кабинета.
    3. В поле Login ID укажите ID варианта авторизации, который можно найти в разделе Лаунчер > Общие настройки > Настройки аутентификации Личного кабинета.
    4. В главном меню выберите пункт File > Package Project > Windows (64 bit) или File > Package Project > Mac, в зависимости от платформы, для которой создается сборка.
    5. Во всплывающем окне укажите путь к директории, в которую будет помещена готовая сборка.
    Была ли статья полезна?
    Спасибо!
    Что может сделать страницу еще лучше? Сообщение
    Жаль, что так произошло
    Расскажите, почему статья не была полезна. Сообщение
    Спасибо за обратную связь!
    Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
    Скрыть

    Как реализовать аутентификацию пользователя по ID устройства

    Авторизация по ID устройства позволяет пользователям начать работу с приложением на мобильном устройстве без ввода данных для регистрации. При первом входе в приложение по ID устройства новый аккаунт создается автоматически, при этом пользователю не требуется вводить имя пользователя, email-адрес или другие данные.

    Внимание
    Созданный по ID устройства аккаунт позволяет использовать приложение только на текущем мобильном устройстве. Доступ к нему будет утерян при смене Android- или iOS-устройства, а также при удалении приложения на iOS-устройстве. Чтобы сохранить прогресс в приложении и пользоваться аккаунтом на других устройствах, пользователь может обновить аккаунт, привязав социальную сеть или указав имя пользователя, email-адрес и пароль.

    С помощью ID устройства вы можете реализовать авторизацию пользователя на одном или нескольких мобильных устройствах в фоновом режиме. Для этого пользователю потребуется привязать к уже существующему аккаунту ID устройства.

    SDK поддерживает авторизацию по ID мобильных устройств на платформах Android и iOS.

    Получение ID устройства

    ID устройства генерируется платформой и доступно приложениям, установленным на мобильном устройстве. SDK получает значение ID с помощью API платформы и использует это значение для выполнения различных функций с помощью API Иксоллы.

    ID iOS-устройства передается в свойстве UIDevice.identifierForVendor. ID Android-устройства передается в константе android.provider.Settings.Secure.ANDROID_ID. Для определения ID используется стандартный метод UE4 Get Device Id.

    Методы SDK

    В SDK реализованы методы для выполнения следующих функций:

    Аутентификация

    Название метода SDKОписание
    AuthenticateViaDeviceId
    Аутентифицирует пользователя в приложении с помощью ID текущего устройства.

    Обновление аккаунта

    Название метода SDKОписание
    LinkEmailAndPassword
    Добавляет к текущему аккаунту имя пользователя, email-адрес и пароль, которые можно использовать для аутентификации.
    LinkSocialNetworkToUserAccount
    Привязывает к текущему аккаунту социальную сеть, которую можно использовать для аутентификации.
    Внимание
    С помощью перечисленных методов можно обновлять аккаунт, созданный любым доступным способом (например, с помощью социальной сети или email-адреса и пароля).

    Управление устройствами

    Название метода SDKОписание
    UpdateUsersDevices
    Возвращает список устройств, привязанных к текущему аккаунту пользователя.
    LinkDeviceToAccount
    Привязывает указанное устройство к текущему аккаунту пользователя.
    UnlinkDeviceFromAccount
    Удаляет привязку указанного устройства к текущему аккаунту пользователя.
    Была ли статья полезна?
    Спасибо!
    Что может сделать страницу еще лучше? Сообщение
    Жаль, что так произошло
    Расскажите, почему статья не была полезна. Сообщение
    Спасибо за обратную связь!
    Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
    Скрыть
    Последнее обновление: 22 января 2024

    Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

    Сообщите о проблеме
    Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
    Укажите email-адрес, чтобы мы могли связаться с вами
    Спасибо за обратную связь!