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

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

Как настроить 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.

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

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

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

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

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

Настройка плагина в вашем проекте UE4

  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.

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

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

Notice
Используйте эту инструкцию для работы только со следующими плагинами:
  • Game Commerce
  • Cross-Buy

Вы можете интегрировать плагины Game Commerce и Cross-Buy с собственной системой авторизации. В этом случае необходимо реализовать аутентификацию пользователя в вашем приложении через Pay Station access token.

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

  1. Ваш клиент отправляет на ваш сервер запрос на аутентификацию.
  2. Ваш сервер авторизует пользователя и отправляет на сервер Иксоллы запрос на получение Pay Station access token.
  3. Сервер Иксоллы возвращает Pay Station access token.
  4. Ваш сервер передает Pay Station access token клиенту.
  5. Полученный Pay Station access token используется методами SDK как авторизационный токен для открытия внутриигрового магазина, проведения платежа и управления инвентарем.

Получение Pay Station access token

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

В серверной части вашего приложения реализуйте метод для получения Pay Station access token с использованием HTTP POST запроса.

API Иксоллы использует базовую HTTP-аутентификацию. Запрос должен содержать заголовок Authorization: Basic <your_authorization_basic_key>, где <your_authorization_basic_key> — пара merchant_id:api_key, закодированная по стандарту Base64. Значения параметров вы можете найти в Личном кабинете:

  • merchant_id указан в разделе Настройки проекта > Оповещения > ID продавца.
  • api_key указан в разделе Настройки компании > Ключ API.

HTTP-запрос:

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token

В теле запроса на получение токена передайте следующие параметры:

ПараметрТипОписание
settings
objectОбъект, содержащий настройки проекта.
settings.project_id
integerID игры в Иксолле. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта. Обязательный.
user
objectОбъект с информацией о пользователе.
user.id
objectОбъект с данными об ID пользователя в вашей системе авторизации.
user.id.value
stringID пользователя. Обязательный.
user.email
objectОбъект с данными о email-адресе пользователя.
user.email.value
stringEmail пользователя. Должен быть валидным в соответствии с протоколом RFC 822. Обязательный.
user.name
objectОбъект с информацией о нике пользователя. Обязательный.
user.name.value
stringНик пользователя.
user.steam_id
objectОбъект с данными о Steam ID пользователя.
user.steam_id.value
stringSteam ID пользователя. Обязательный, если приложение публикуется на Steam.
user.playfab_id
objectОбъект с данными о PlayFab ID пользователя.
user.playfab_id.value
stringPlayFab ID пользователя. Обязательный, если приложение использует сервисы PlayFab для начисления товаров.

Примеры запросов и ответов приведены в справочнике API.

Note
В запросе используйте только параметры из списка выше. Другие параметры API метода (custom_parameters, purchase и т. д.) передавать не следует, они не предназначены для получения авторизационного токена.

Использование Pay Station access token

Чтобы использовать Pay Station access token для открытия внутриигрового магазина, проведения платежа и управления инвентарем, передайте его в методы SDK.

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

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

Note
Время жизни Pay Station access token при работе с внутриигровым магазином и инвентарем — 1 час с момента последнего обращения к API Иксоллы. Чтобы изменить время жизни Pay Station access token, обратитесь к аккаунт-менеджеру проекта.
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Скрыть

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

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

  • Google
  • Facebook

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

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

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

Note
Для дальнейшей настройки нативной авторизации вам понадобится имя пакета вашего Android-приложения, которое можно найти в разделе Edit > Project Settings > Platforms > Android в поле Android Package Name ('com.YourCompany.Project' [PROJECT] is replaced with project name).

  1. Для нативной авторизации через Facebook зарегистрируйтесь в личном кабинете разработчика Facebook и создайте новое приложение.
  2. Настройте страницу приложения в личном кабинете разработчика Facebook.
  3. Для нативной авторизации через Google настройте проект в Google API Console.
  4. Настройте социальные сети для варианта авторизации в Личном кабинете.
  5. Настройте плагин для вашего проекта UE4.

Настройка страницы приложения в личном кабинете разработчика 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.

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

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

  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. Нажмите Подключить.

Настройка плагина для проекта UE4

  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.

Настройка проекта UE4

  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.

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

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

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

    Note
    Вы можете настроить инвалидацию токена для авторизации с использованием токена в формате 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.

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

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

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

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

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

    1. Настройте Лаунчер в Личном кабинете.

    Note
    В файле config.json достаточно изменить значения для следующих объектов:
    • launcher_project_id — укажите ID лаунчера, который можно найти в разделе Лаунчер > Общие настройки > Общая информация Личного кабинета;
    • login_project_id — укажите ID варианта авторизации, который можно найти в разделе Лаунчер > Общие настройки > Настройки аутентификации Личного кабинета.

    1. Кастомизируйте интерфейс лаунчера.

    Notice
    При интеграции SDK с серверами Иксоллы используется Commerce API, поэтому магазин Лаунчера не поддерживается.

    1. Реализуйте в вашем приложении логику авторизации через Лаунчер.
    2. Сгенерируйте установочный файл лаунчера и архив с его сборкой.
    3. Создайте сборку приложения.
    4. Загрузите сборку приложения на сервер обновлений Иксоллы.

    Реализация логики авторизации через Лаунчер

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

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

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

    Note
    Полученный токен используется методами 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-адрес или другие данные.

    Notice
    Созданный по 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-адрес и пароль, которые можно использовать для аутентификации.
    Привязывает к текущему аккаунту социальную сеть, которую можно использовать для аутентификации.
    Notice
    С помощью перечисленных методов можно обновлять аккаунт, созданный любым доступным способом (например, с помощью социальной сети или email-адреса и пароля).

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

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

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

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