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

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

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

Notice
Используйте эту инструкцию для работы с библиотекой Login.

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

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

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

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

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

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

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

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

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

Инициализация библиотеки

Для инициализации библиотеки добавьте следующую строку в ваш исходный код проекта Android, указав следующие параметры:

  • login-project-idID варианта авторизации, который можно найти в разделе Настройки авторизации > ID варианта авторизации в Личном кабинете.
  • oauth2-client-idID клиента, полученный при настройке авторизации по протоколу OAuth 2.0 в Личном кабинете.

Copy
Full screen
Small screen
val loginConfig = LoginConfig.OauthBuilder()
                .setProjectId("login-project-id")
                .setOauthClientId("oauth2-client-id")
                .build()

XLogin.init(applicationContext, loginConfig)

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

  • XLogin.refreshToken — обновляет токен.
  • XLogin.getToken — возвращает текущий токен.
  • XLogin.isTokenExpired — возвращает true если срок действия токена истек.

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

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

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

Вы можете интегрировать библиотеки Store, Payments и Inventory с собственной системой авторизации. В этом случае необходимо реализовать аутентификацию пользователя в вашем приложении через 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 для открытия внутриигрового магазина, проведения платежа и управления инвентарем, передайте его в метод XStore.init.

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

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

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

Notice
Используйте эту инструкцию для работы с библиотекой Login.

Нативная авторизация позволяет пользователям войти в ваше приложение с помощью аккаунта социальной сети, настроенного на мобильном устройстве.

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

В настоящее время для SDK реализована нативная авторизация через следующие социальные сети:

  • Google
  • Facebook
  • WeChat
  • QQ

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

  1. Настройте приложение в личном кабинете разработчика социальной сети:
    1. Для авторизации через Facebook:
      1. Зарегистрируйтесь и создайте новое приложение.
      2. Настройте страницу приложения в личном кабинете разработчика Facebook.
    2. Для авторизации через Google настройте проект в Google API Console.
    3. Для авторизации через WeChat:
      1. Зарегистрируйтесь и создайте новое мобильное приложение.
      2. Отправьте приложение на проверку.
    4. Для авторизации через QQ:
      1. Зарегистрируйтесь и создайте новое мобильное приложение.
      2. Отправьте приложение на проверку.

  1. Настройте авторизацию через социальные сети на стороне Иксоллы:
    1. Для Facebook и Google настройте социальные сети в Личном кабинете.
    2. Для WeChat и QQ обратитесь к аккаунт-менеджеру проекта.

  1. Установите библиотеки для авторизации через социальную сеть. Для этого откройте файл build.gradle вашего приложения и в разделе зависимостей добавьте следующие строки, где <version_number> — необходимая версия библиотеки:
    • Для авторизации через Facebook:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-facebook:<version_number>'

    • Для авторизации через Google:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-google:<version_number>'

    • Для авторизации через WeChat:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-wechat:<version_number>'

    • Для авторизации через QQ:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:login-qq:<version_number>'

  1. Инициализируйте библиотеку Login с указанием следующих параметров:
    • facebook_idИдентификатор приложения из личного кабинета разработчика Facebook;
    • google_idИдентификатор клиента из Google API Console для веб-приложения;
    • wechat_idAppID из личного кабинета разработчика WeChat;
    • qq_idAppID из личного кабинета разработчика QQ.

Пример инициализации библиотеки при аутентификации через JWT:

Copy
Full screen
Small screen
val loginConfig = LoginConfig.JwtBuilder()
                .setProjectId("login-project-id")
                .setSocialConfig(XLogin.SocialConfig(
                     facebookAppId = "facebook_id",
                     googleServerId = "google_id",
                     wechatAppId = "wechat_id",
                     qqAppId = "qq_id"
                ))
                .build()

XLogin.init(applicationContext, loginConfig)

Пример инициализации библиотеки при аутентификации через OAuth 2.0:

Copy
Full screen
Small screen
val loginConfig = LoginConfig.OauthBuilder()
                .setProjectId("login-project-id")
                .setOauthClientId("oauth2-client-id")
                .setSocialConfig(XLogin.SocialConfig(
                     facebookAppId = "facebook_id",
                     googleServerId = "google_id",
                     wechatAppId = "wechat_id",
                     qqAppId = "qq_id"
                ))

                .build()

XLogin.init(applicationContext, loginConfig)

  1. Для авторизации через WeChat доработайте код приложения:
    • Добавьте в пакет <your_package_name>.wxapi класс WXEntryActivity, где <your_package_name> — название пакета вашего приложения:

Copy
Full screen
Small screen
package <your_package_name>.wxapi

import android.app.Activity
import android.os.Bundle
import com.tencent.mm.opensdk.modelbase.BaseReq
import com.tencent.mm.opensdk.modelbase.BaseResp
import com.tencent.mm.opensdk.openapi.IWXAPI
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.xsolla.android.login.social.LoginSocial

class WXEntryActivity : Activity(), IWXAPIEventHandler {

    private lateinit var iwxapi: IWXAPI

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        iwxapi = WXAPIFactory.createWXAPI(this, LoginSocial.wechatAppId, false)
        iwxapi.handleIntent(intent, this)
        finish()
    }

    override fun onReq(req: BaseReq?) {
    }

    override fun onResp(resp: BaseResp) {
        LoginSocial.wechatResult = resp
    }
}

    • Добавьте в файл AndroidManifest.xml следующий элемент:

Copy
Full screen
Small screen
<activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true">

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

  1. Перейдите к настройкам приложения в личном кабинете разработчика Facebook.
  2. Перейдите Настройки > Основное.
  3. Нажмите Добавить платформу и выберите Android.
  4. В поле Название пакета Google Play укажите имя пакета вашего Android-приложения.
  5. В поле Название класса укажите полное имя класса Activity по умолчанию.
  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. Нажмите Подключить.

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

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

Notice
Используйте эту инструкцию для работы с библиотекой Login.

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

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

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

Для применения инвалидации токена в вашем проекте Android необходимо в методах XLogin.login, XLogin.startSocialAuth и XLogin.finishSocialAuth передавать параметр withLogout = true.

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

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

Notice
Используйте эту инструкцию для работы с библиотекой Login.

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

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

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

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

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

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

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

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

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

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

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

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

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