Аутентификация
Протокол OAuth 2.0 использует короткоживущие токены с долговременной авторизацией (refresh-токены) вместо долгоживущих токенов. Refresh-токен позволяет длительное время использовать ваше приложение без необходимости повторного ввода имени пользователя и пароля. При этом исключается вероятность того, что данные авторизации пользователя будут скомпрометированы.
Протокол OAuth 2.0 используется для авторизации:
- через имя пользователя или email-адрес и пароль;
- через социальные сети;
- через Steam.
При включении настройки регистрация и авторизация пользователя выполняются с помощью вызова методов API Awake
. Метод проверяет истечение срока действия текущего refresh-токена.
Для настройки авторизации по протоколу OAuth 2.0:
- Настройте авторизацию по протоколу OAuth 2.0 для варианта Авторизации в Личном кабинете.
- Настройте ассет для вашего проекта Unity.
Настройка авторизации по протоколу OAuth 2.0 для варианта Авторизации в Личном кабинете
- Перейдите к вашему проекту в Личном кабинете.
- Выберите пункт Авторизация в боковом меню.
- Нажмите Настроить в панели с вариантом авторизации.
- Перейдите к блоку Безопасность и выберите раздел OAuth 2.0 аутентификация.
- Нажмите Добавить OAuth 2.0.
- Укажите URI переадресации OAuth 2.0 и нажмите Подключить.
- Скопируйте и сохраните ID клиента.
Настройка ассета в проекте Unity
- Перейдите к вашему проекту Unity.
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - В панели
Inspector :- В поле
Authorization method выберитеOAuth2.0 . - В поле
OAuth2.0 client ID укажите ID клиента, полученный при настройке авторизации по протоколу OAuth 2.0 в Личном кабинете.
- В поле
Для работы с refresh-токенами в ассете Login & Account System реализованы следующие методы:
IsOAuthTokenRefreshInProgress
— возвращаетtrue
во время процесса обновления токена.ExchangeCodeToToken
— обменивает код аутентификации пользователя на действительный JWT.
Для дополнительной проверки пользователя при авторизации по протоколу OAuth 2.0 в методе GetSocialNetworkAuthUrl
предусмотрен аргумент oauthState
. Этот аргумент используется для сдерживания возможных атак CSRF.
Используйте эту инструкцию для работы только со следующими ассетами:
- Game Commerce
- Cross-Buy
Поддержка ассета Cross-Buy будет прекращена в апреле 2022. Вы можете продолжить использовать его, но он не будет обновляться и дополняться новыми возможностями. Рекомендуется перейти на использование ассета Game Commerce. Он содержит все классы и методы, необходимые для работы с продуктами Иксоллы.
Вы можете интегрировать ассеты Game Commerce и Cross-Buy с собственной системой авторизации. В этом случае необходимо реализовать аутентификацию пользователя в вашем приложении через Pay Station access token.
Сценарий взаимодействия c серверами Иксоллы при использовании собственной системы авторизации:
- Ваш клиент отправляет на ваш сервер запрос на аутентификацию.
- Ваш сервер авторизует пользователя и отправляет на сервер Иксоллы запрос на получение Pay Station access token.
- Сервер Иксоллы возвращает Pay Station access token.
- Ваш сервер передает Pay Station access token клиенту.
- Полученный Pay Station access token используется методами SDK как авторизационный токен для открытия внутриигрового магазина, проведения платежа и управления инвентарем.
Получение Pay Station access token
В серверной части вашего приложения реализуйте метод для получения 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-запрос:
http
- http
- curl
- php
- C#
- python
- ruby
- java
- javascript
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token
Headers:
Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json
Body:
{
"purchase": {
"virtual_currency": {
"quantity": 100
},
"virtual_items": {
"items": [
{
"amount": 1,
"sku": "SKU01"
}
]
}
},
"settings": {
"currency": "USD",
"language": "en",
"project_id": 16184,
"ui": {
"components": {
"virtual_currency": {
"custom_amount": true
}
},
"desktop": {
"virtual_item_list": {
"button_with_price": true,
"layout": "list"
}
},
"size": "medium"
}
},
"user": {
"country": {
"allow_modify": true,
"value": "US"
},
"age": 19,
"email": {
"value": "john.smith@mail.com"
},
"id": {
"value": "user_2"
},
"name": {
"value": "John Smith"
}
}
}
curl --request POST \
--url https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
--header 'authorization: Basic <your_authorization_basic_key>' \
--header 'content-type: application/json' \
--data '{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"age":19,"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}'
<?php
$client = new http\Client;
$request = new http\Client\Request;
$body = new http\Message\Body;
$body->append('{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"age":19,"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}');
$request->setRequestUrl('https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders(array(
'authorization' => 'Basic <your_authorization_basic_key>',
'content-type' => 'application/json'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client
conn = http.client.HTTPSConnection("api.xsolla.com")
payload = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"
headers = {
'content-type': "application/json",
'authorization': "Basic <your_authorization_basic_key>"
}
conn.request("POST", "/merchant/v2/merchants/{merchant_id}/token", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
require 'uri'
require 'net/http'
url = URI("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"
response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}");
Request request = new Request.Builder()
.url("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token")
.post(body)
.addHeader("content-type", "application/json")
.addHeader("authorization", "Basic <your_authorization_basic_key>")
.build();
Response response = client.newCall(request).execute();
var data = JSON.stringify({
"user": {
"id": {
"value": "user_2"
},
"name": {
"value": "John Smith"
},
"age": 19,
"email": {
"value": "john.smith@mail.com"
},
"country": {
"value": "US",
"allow_modify": true
}
},
"settings": {
"project_id": 16184,
"currency": "USD",
"language": "en",
"ui": {
"size": "medium",
"desktop": {
"virtual_item_list": {
"layout": "list",
"button_with_price": true
}
},
"components": {
"virtual_currency": {
"custom_amount": true
}
}
}
},
"purchase": {
"virtual_currency": {
"quantity": 100
},
"virtual_items": {
"items": [
{
"sku": "SKU01",
"amount": 1
}
]
}
}
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");
xhr.send(data);
В теле запроса на получение токена передайте следующие параметры:
Параметр | Тип | Описание |
---|---|---|
settings | object | Объект, содержащий настройки проекта. |
settings.project_id | integer | ID игры в Иксолле. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта. Обязательный. |
user | object | Объект с информацией о пользователе. |
user.id | object | Объект с данными об ID пользователя в вашей системе авторизации. |
user.id.value | string | ID пользователя. Обязательный. |
user.email | object | Объект с данными о email-адресе пользователя. |
user.email.value | string | Email пользователя. Должен быть валидным в соответствии с протоколом RFC 822. Обязательный. |
user.name | object | Объект с информацией о нике пользователя.Обязательный. |
user.name.value | string | Ник пользователя. |
user.steam_id | object | Объект с данными о Steam ID пользователя. |
user.steam_id.value | string | Steam ID пользователя. Обязательный, если приложение публикуется на Steam. |
user.playfab_id | object | Объект с данными о PlayFab ID пользователя. |
user.playfab_id.value | string | PlayFab ID пользователя. Обязательный, если приложение использует сервисы PlayFab для начисления товаров. |
Примеры запросов и ответов приведены в справочнике API.
custom_parameters
, purchase
и т. д.) передавать не следует, они не предназначены для получения авторизационного токена.Использование JWT пользователя
Чтобы использовать Pay Station access token для открытия внутриигрового магазина, проведения платежа и управления инвентарем, в методах SDK передайте его в свойства XsollaLogin.Instance.Token
и XsollaStore.Instance.Token
.
Примеры использования токена авторизации приведены в сценариях:
- Продажа виртуальных предметов за реальную валюту.
- Продажа виртуальных предметов за виртуальную валюту.
- Отображение баланса виртуальной валюты.
- Отображение предметов в инвентаре.
Реализуйте получение нового Pay Station access token после истечения срока действия. Рекомендуется получать новый токен в фоновом режиме, без необходимости повторного входа пользователя в приложение.
Нативная авторизация позволяет пользователям войти в ваше приложение с помощью аккаунта социальной сети, настроенного на мобильном устройстве.
При первом входе пользователя запускается приложение социальной сети, которое запрашивает разрешение на аутентификацию пользователя. В дальнейшем аутентификация будет выполняться автоматически, без участия пользователя.
В настоящее время для SDK реализована нативная авторизация через следующие социальные сети:
Чтобы настроить нативную авторизацию:
- Создайте сборку вашего проекта Unity под Android.
- Настройте приложение в личном кабинете разработчика социальной сети:
- Для авторизации через Facebook:
- Зарегистрируйтесь и создайте новое приложение.
- Настройте страницу приложения в личном кабинете разработчика Facebook.
- Для авторизации через Google настройте проект в Google API Console.
- Для авторизации через WeChat:
- Зарегистрируйтесь и создайте новое мобильное приложение.
- Отправьте приложение на проверку.
- Для авторизации через QQ:
- Зарегистрируйтесь и создайте новое мобильное приложение.
- Отправьте приложение на проверку.
- Для авторизации через Facebook:
- Настройте авторизацию через социальные сети на стороне Иксоллы:
- Для Facebook и Google настройте социальные сети в Личном кабинете.
- Для WeChat и QQ обратитесь к аккаунт-менеджеру проекта.
- Настройте ассет для вашего проекта Unity.
Создание сборки проекта Unity под Android
- Перейдите к вашему проекту Unity.
- В главном меню выберите пункт
File > Build settings . - В панели
Platform выберите пунктAndroid . - Нажмите
Build . - Убедитесь, что сформировался хеш-ключ:
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - Убедитесь, что в поле
Android debug hash key появился хеш-ключ.
- В главном меню выберите пункт
Для дальнейшей настройки нативной авторизации вам понадобятся:
Package Name , который можно найти в панелиInspector после выбора платформы Android вFile > Build settings .Android class name , который можно найти вWindow > Xsolla > Edit Settings > Inspector > Android class name .Android debug hash key , который можно найти вWindow > Xsolla > Edit Settings > Inspector > Android debug hash key .
Настройка страницы приложения в личном кабинете разработчика Facebook
- Перейдите к настройкам приложения в личном кабинете разработчика Facebook.
- Перейдите Настройки > Основное.
- Нажмите Добавить платформу и выберите Android.
- В поле Название пакета Google Play укажите
Package Name из вашего проекта Unity. - В поле Название класса укажите
Android class name из вашего проекта Unity. - В поле Ключевые хеш-адреса укажите
Android debug hash key из вашего проекта Unity. - Нажмите Сохранить изменения.
Для дальнейшей настройки нативной авторизации вам понадобятся Идентификатор приложения и Секрет приложения, которые можно найти в настройках приложения в разделе Настройки > Основное.
Настройка проекта в Google API Console
- Перейдите в Google API Console.
- Нажмите Создать проект.
- Укажите Название проекта и Местоположение, нажмите Создать.
- Перейдите в созданный проект и в боковом меню нажмите Окно запроса доступа OAuth.
- Установите флажок Внешнее и нажмите Создать.
- Укажите необходимые параметры и нажмите Сохранить.
- В боковом меню выберите Учетные данные.
- Создайте клиент OAuth 2.0 для вашего приложения на Unity:
- Нажмите Создать учетные данные и выберите Идентификатор проекта OAuth.
- В поле Тип приложения укажите Android.
- Укажите Имя.
- В поле Название пакета укажите
Package Name из вашего проекта Unity. - В поле Контрольная сумма сертификата SHA-1 укажите
Android debug hash key из вашего проекта Unity. - Нажмите Создать.
- Нажмите OK.
- Создайте клиент OAuth 2.0 для веб-приложения:
- Нажмите Создать учетные данные и выберите пункт Идентификатор проекта OAuth.
- В поле Тип приложения укажите Веб-приложение.
- Укажите Имя.
- Нажмите Добавить URI в разделе Разрешенные URI перенаправления и укажите URI
https://login.xsolla.com/api/social/oauth2/callback
. - Нажмите Создать.
- Нажмите OK.
Для дальнейшей настройки нативной авторизации вам понадобятся Идентификатор клиента и Секретный код клиента, которые можно найти в настройках идентификатора клиента для веб-приложения.
Настройка социальных сетей для варианта авторизации в Личном кабинете Xsolla
- Перейдите к вашему проекту в Личном кабинете.
- Нажмите Авторизация в боковом меню и перейдите в раздел Варианты авторизации > ваш вариант авторизации > Социальные сети.
- Для настройки авторизации через Facebook:
- Нажмите Редактировать в панели Facebook и измените статус на Отключен.
- В поле Application ID укажите Идентификатор приложения из личного кабинета разработчика Facebook.
- В поле Application Secret укажите Секрет приложения из личного кабинета разработчика Facebook.
- Нажмите Подключить.
- Для настройки авторизации через Google:
- Нажмите Редактировать в панели Google и измените статус на Отключен.
- В поле Application ID укажите Идентификатор клиента из Google API Console для веб-приложения.
- В поле Application Secret укажите Секретный код клиента из Google API Console для веб-приложения.
- Нажмите Подключить.
Настройка ассета для проекта Unity
- Перейдите к вашему проекту Unity.
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - Укажите идентификатор приложения:
- В поле
Facebook App ID укажите Идентификатор приложения из личного кабинета разработчика Facebook. - В поле
Google server ID укажите Идентификатор клиента из Google API Console для веб-приложения. - В поле
WeChat App ID укажите AppID из настроек приложения WeChat. - В поле
QQ App ID укажите AppID из настроек приложения QQ.
- В поле
Нативная авторизация позволяет игрокам войти в ваше приложение через установленное приложение Steam.
Чтобы настроить нативную авторизацию:
- Подключите автоматическую аутентификацию через Steam в Личном кабинете.
- Настройте ваш проект Unity.
- Настройте обработку событий.
- Проверьте авторизацию через Steam.
Настройка проекта Unity
- Вручную создайте файл
steam_appid.txt
, впишите в него ID вашего приложения в Steam и поместите его в каталогAssets
вашего проекта.
Assets
уже создан файл steam_appid.txt
Steam для демопроекта.- Откройте ваш проект Unity.
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - В панели
Inspector :- Установите флажок
Use Steam authorization . - В поле
Steam App ID укажите ID вашего приложения в Steam. Значение должно совпадать со значением, указанным в файлеsteam_appid.txt
.
- Установите флажок
Настройка обработки событий
Для авторизации пользователя через Steam необходимо получить session ticket
с помощью метода SteamAuth
. Полученное значение необходимо передать при вызове метода RequestTokenBy
. В результате вы получите токен, который можно использовать при вызове API.
Проверка авторизации через Steam
- Создайте сборку вашего проекта Unity для stand-alone платформы.
- Запустите приложение Steam и авторизуйтесь в нем.
- Запустите ваше приложение. Если настройка выполнена правильно, откроется всплывающее окно Steam.
Инвалидация токена позволяет повысить безопасность данных авторизации пользователя в вашем приложении. При включении настройки, с каждым входом пользователя в систему его предыдущий токен доступа становится недействительным и генерируется новый токен.
При использовании SDK инвалидация существующего токена и генерация нового выполняется при вызове методов API with_logout
указано значение 1
.
Для включения инвалидации токена в вашем проекте Unity:
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - В панели
Inspector установите флажокEnable JWT invalidation .
Для доставки вашего приложения пользователям и его обновления вы можете использовать Лаунчер Иксоллы. Лаунчер содержит встроенный инструмент авторизации. Чтобы избежать необходимости повторного ввода имени пользователя и пароля, настройте авторизацию в вашем приложении через Лаунчер.
Настройка совместной работы SDK и Launcher
- Настройте Лаунчер в Личном кабинете.
config.json
достаточно изменить значения для следующих объектов:launcher_project_id
— укажите ID лаунчера, который можно найти в разделе Лаунчер > Общие настройки > Общая информация Личного кабинета;login_project_id
— укажите ID варианта авторизации, который можно найти в разделе Лаунчер > Общие настройки > Настройки аутентификации Личного кабинета.
- Реализуйте в вашем приложении логику авторизации через Лаунчер.
- Сгенерируйте установочный файл лаунчера и архив с его сборкой.
- Создайте сборку приложения.
- Загрузите сборку приложения на сервер обновлений Иксоллы.
Реализация логики аутентификации через Launcher
Сценарий авторизации в приложении через Лаунчер:
- Пользователь авторизуется в Лаунчере.
- Пользователь устанавливает и запускает приложение.
- Лаунчер запускает приложение с передачей параметров пользователя через командную строку. Токен для авторизации передается в параметре
xsolla-login-token
. - Приложение обрабатывает параметры командной строки и получает токен. Пример скрипта обработки токена приведен в демопроекте.
- Приложение валидирует полученный токен. Пример скрипта валидации токена приведен в демопроекте.
- Приложение автоматически авторизует пользователя, не отображая страницу авторизации. Пример скрипта авторизации пользователя приведен в демопроекте.
XsollaLogin.Instance.Token
и XsollaStore.Instance.Token
.Создание сборки приложения
- Откройте ваш проект Unity.
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . В панелиInspector :- В поле
Project ID укажите ID проекта, который можно найти в разделе Настройки проекта > ID проекта Личного кабинета. - В поле
Login ID укажите ID варианта авторизации, который можно найти в разделе Лаунчер > Общие настройки > Настройки аутентификации Личного кабинета.
- В поле
- Запустите сцену авторизации пользователя, в которой выполняется обработка токена.
- В главном меню выберите пункт
File > Build settings и нажмитеAdd Open Scenes . Убедитесь, что сцена авторизации добавлена первой в списке. - Нажмите
Build . - Во всплывающем окне укажите путь к директории, в которую будет помещена готовая сборка.
Авторизация по ID устройства позволяет пользователям начать работу с приложением на мобильном устройстве без ввода данных для регистрации. При первом входе в приложение по ID устройства новый аккаунт создается автоматически, при этом пользователю не требуется вводить имя пользователя, email-адрес или другие данные.
С помощью ID устройства вы можете реализовать авторизацию пользователя на одном или нескольких мобильных устройствах в фоновом режиме. Для этого пользователю потребуется привязать к уже существующему аккаунту ID устройства.
SDK поддерживает авторизацию по ID мобильных устройств на платформах Android и iOS.
Получение ID устройства
ID устройства генерируется платформой и доступно приложениям, установленным на мобильном устройстве. SDK получает значение ID с помощью API платформы и использует это значение для выполнения различных функций с помощью API Иксоллы.
ID iOS-устройства передается в свойстве UIDevice.identifierForVendor. Для определения ID используется стандартный метод Unity SystemInfo.deviceUniqueIdentifier.
ID Android-устройства передается в константе android.provider.Settings.Secure.ANDROID_ID. Для определения ID используется собственная логика SDK, потому что стандартный метод Unity возвращает ID Android-устройства в виде MD5 хеш-кода, который не подходит для методов API Иксоллы.
Методы SDK
В SDK реализованы методы для выполнения следующих функций:
Аутентификация
Название метода SDK | Описание |
---|---|
AuthViaDeviceID | Аутентифицирует пользователя в приложении с помощью ID текущего устройства. |
Обновление аккаунта
Название метода SDK | Описание |
---|---|
AddUsernameEmailAuthToAccount | Добавляет к текущему аккаунту имя пользователя, email-адрес и пароль, которые можно использовать для аутентификации. |
LinkSocialProvider | Привязывает к текущему аккаунту социальную сеть, которую можно использовать для аутентификации. |
Управление устройствами
Название метода SDK | Описание |
---|---|
GetUserDevices | Возвращает список устройств, привязанных к текущему аккаунту пользователя. |
LinkDeviceToAccount | Привязывает указанное устройство к текущему аккаунту пользователя. |
UnlinkDeviceFromAccount | Удаляет привязку указанного устройства к текущему аккаунту пользователя. |
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.