Аутентификация пользователей в приложении
Для обеспечения безопасности и корректной работы платежных операций Xsolla API использует JSON Web Token (JWT) пользователя, полученный при авторизации с помощью Xsolla Login.
Ниже приведены инструкции по наиболее быстрому способу интеграции Xsolla Login — интеграция в приложение готового веб-виджета.
Если вы хотите использовать собственный интерфейс для входа пользователей в ваше приложение, реализуйте логику аутентификации пользователей c помощью Login API или методов SDK.
Выберите наиболее подходящий для вашего проекта SDK:
Общие инструкции по импорту виджета и работе с ним приведены в README-файле.
Используйте в качестве примера реализации тестовые веб-приложения:
Подключение SDK виджета Xsolla Login
Виджет Xsolla Login доступен для установки с помощью менеджера пакетов NPM или тега <script>
на HTML-странице.
Подключите SDK виджета Xsolla Login одним из следующих способов:
Запустите консоль и выполните команду:
- bash
npm i @xsolla/login-sdk
Добавьте в тег <head>
HTML-страницы, на которой будет размещен виджет, следующий код:
- html
<script src="https://login-sdk.xsolla.com/latest/">
</script>
Инициализация SDK виджета Xsolla Login
Инициализируйте виджет одним из способов, приведенных ниже. Укажите следующие параметры:
projectId
— ID варианта авторизации. Вы можете найти его в проекте в Личном кабинете в разделе Login > Дашборд.preferredLocale
— язык интерфейса. Поддерживаются следующие языки: арабский (ar_AE
), болгарский (bg_BG
), чешский (cz_CZ
), английский (en_US
), немецкий (de_DE
), испанский (es_ES
), французский (fr_FR
), иврит (he_IL
), итальянский (it_IT
), японский (ja_JP
), корейский (ko_KR
), польский (pl_PL
), португальский (pt_BR
), румынский (ro_RO
), русский (ru_RU
), тайский (th_TH
), турецкий (ttr_TR
), вьетнамский (vi_VN
), китайский упрощенный (zh_CN
), китайский традиционный (zh_TW
).clientId
— ID клиента OAuth 2.0, который можно найти в проекте в Личном кабинете в разделе Login > проект авторизации > Безопасность > OAuth 2.0 аутентификация.redirectUri
— URL-адрес, на который перенаправляется пользователь после подтверждения аккаунта, успешной аутентификации или подтверждения сброса пароля. Должен быть указан в Личном кабинете в настройках клиента OAuth 2.0.
Остальные параметры оставьте без изменений.
Добавьте код инициализации в JS-файл:
- javascript
import { Widget } from '@xsolla/login-sdk';
const xl = new Widget({
projectId: 'LOGIN_PROJECT_ID',
preferredLocale: 'en_US'
clientId: 'CLIENT_ID',
responseType: 'code',
state: 'CUSTOM_STATE',
redirectUri: 'REDIRECT_URI',
scope: 'SCOPE'
});
Добавьте код инициализации виджета в тег <body>
:
- html
<script>
const xl = new XsollaLogin.Widget({
projectId: 'LOGIN_PROJECT_ID',
preferredLocale: 'en_US',
clientId: 'CLIENT_ID',
responseType: 'code',
state: 'CUSTOM_STATE',
redirectUri: 'REDIRECT_URI',
scope: 'SCOPE'
});
</script>
Открытие виджета Xsolla Login
- Add a button with the
on-click
event and thexl.open()
function to your HTML page:
- html
<div id="xl_auth" style="display: none"></div>
<button onclick="showFullscreen()">Fullscreen widget</button>
- Добавьте код для открытия виджета в блок
<div>
HTML-страницы.
Добавьте следующий код в JS-файл:
- javascript
xl.mount('xl_auth');
const showFullscreen = () => {
const myDiv = document.querySelector('#xl_auth');
myDiv.style.display = 'block';
xl.open();
}
Добавьте код открытия виджета в тег <body>
:
- html
<script type="text/javascript">
xl.mount('xl_auth');
function showFullscreen() {
const myDiv = document.querySelector('#xl_auth');
myDiv.style.display = 'block';
xl.open();
}
</script>
Импорт пакета из архива
- Распакуйте архив.
- Откройте свой проект Unity или создайте новый.
- В главном меню редактора Unity выберите пункт
Assets > Import Package > Custom Package и выберите SDK.
Настройка компилятора
Рекомендуется использовать компилятор
Чтобы создать игровую сборку для Android или iOS, вы можете воспользоваться как компилятором
- В главном меню выберите пункт
Edit > Project Settings . - Перейдите в раздел
Player > Other Settings > Configuration . - Убедитесь, что в поле
Scripting Backend выбрано значениеMono .
Разрешение Android-зависимостей
Для сборок под Android SDK использует функции из нативных Android-библиотек.
Чтобы разрешить зависимости и скачать необходимые библиотеки:
- Укажите Android в качестве платформы для сборки:
- В главном меню редактора Unity выберите пункт
File > Build Settings . - В панели
Platform выберитеAndroid . - Нажмите
Switch Platform .
- В главном меню редактора Unity выберите пункт
- Запустите менеджер зависимостей:
- В главном меню редактора Unity выберите пункт
Assets > External Dependency Manager > Android Resolver > Resolve . - Дождитесь окончания работы менеджера зависимостей.
- В главном меню редактора Unity выберите пункт
В результате все необходимые Android-библиотеки в виде JAR- или AAR-файлов будут загружены в папку Assets/Plugins/Android
.
Настройка SDK
- Откройте проект Unity.
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - Укажите основные параметры проекта в панели
Inspector одним из следующих способов:
- Импортируйте настройки из Личного кабинета:
- Нажмите
Fill settings by PA . - Укажите авторизационные данные Личного кабинета в полях
Login иPassword . - Нажмите
Log In . - Заполните поля в разделе
Publisher Account .
- Нажмите
- Импортируйте настройки из Личного кабинета:
- Нажмите
Apply Settings .
- Нажмите
- На странице входа/регистрации в Личном кабинете перейдите по ссылке Забыли пароль? и следуйте инструкциям.
- Укажите новый пароль в Личном кабинете в разделе Настройки профиля > Смена пароля (в поле Текущий пароль укажите произвольное значение).
- Укажите параметры вручную:
- В поле
Project ID укажите ID проекта, который можно найти в Личном кабинете рядом с названием проекта. - В поле
Login ID укажите ID варианта авторизации. Чтобы получить его, откройте проект в Личном кабинете, перейдите в раздел Login > Дашборд > проект авторизации и нажмите Скопировать ID рядом с названием варианта авторизации. - В поле
Callback URL укажите URL-адрес или путь в приложении, на который перенаправляются пользователи после успешной аутентификации, подтверждения электронной почты или сброса пароля. Значение должно совпадать с указанным в Личном кабинете в разделе Login > проект авторизации > Безопасность > OAuth 2.0 аутентификация.
- В поле
- Укажите параметры вручную:
app://xlogin.<APP_ID>
, где <APP_ID>
— ID приложения из настроек - В поле
OAuth Client ID укажите ID клиента OAuth 2.0, который можно найти в Личном кабинете в разделе Login > проект авторизации > OAuth 2.0 аутентификация.
- В поле
- Задайте другие настройки, если необходимо (например, параметры отображения платежного интерфейса в разделе
Pay Station UI ).
Открытие виджета Xsolla Login
Чтобы открыть виджет, вызовите метод SDK XsollaAuth.AuthWithXsollaWidget
и передайте в него:
onSuccess
— обработчик, вызываемый после успешной аутентификации пользователя.onError
— обработчик, вызываемый в случае ошибки запроса.onCancel
— обработчик отмены аутентификации, срабатывающий при закрытии виджета пользователем без прохождения аутентификации.locale
— язык интерфейса (опционально). Поддерживаются следующие языки: арабский (ar_AE
), болгарский (bg_BG
), чешский (cz_CZ
), английский (en_US
), немецкий (de_DE
), испанский (es_ES
), французский (fr_FR
), иврит (he_IL
), итальянский (it_IT
), японский (ja_JP
), корейский (ko_KR
), польский (pl_PL
), португальский (pt_BR
), румынский (ro_RO
), русский (ru_RU
), тайский (th_TH
), турецкий (ttr_TR
), вьетнамский (vi_VN
), китайский упрощенный (zh_CN
), китайский традиционный (zh_TW
).
В standalone-сборках виджет открывается во встроенном браузере, который входит в состав SDK. Вы можете использовать любой другой встроенный браузер, позволяющий отслеживать изменения URL-адресов.
Установка SDK
Необходимые библиотеки доступны в Maven Central.
Для установки библиотек:
- Запустите Android Studio.
- Откройте файл
build.gradle
вашего приложения. - Добавьте следующие строки в раздел зависимостей, где
<version_number>
— необходимая версия библиотеки:
- groovy
implementation "com.xsolla.android:login:<version_number>"
implementation "com.xsolla.android:store:<version_number>"
implementation "com.xsolla.android:payments:<version_number>"
Инициализация SDK
Инициализируйте библиотеку Login, вызвав статичный метод на старте приложения. Для этого добавьте следующие строки в ваш исходный код проекта Android:
- kotlin
val loginConfig = LoginConfig.OauthBuilder()
.setProjectId("login-project-id") // You can find it in your Publisher Account, in the Login > Dashboard section.
.setOauthClientId("oauth2-client-id") // You can find it in Publisher Account in the Login > your Login project > Security > OAuth 2.0 section.
.build()
XLogin.init(applicationContext, loginConfig)
Открытие виджета Xsolla Login
Чтобы открыть виджет:
- Вызовите метод
XLogin.startAuthWithXsollaWidget
из библиотеки Login, передав в него следующие параметры:
fragment
илиactivity
— текущий фрагмент или текущая активность.
callback
— обработчик статуса.
locale
— язык интерфейса (опционально). Поддерживаются следующие языки: арабский (ar_AE
), болгарский (bg_BG
), чешский (cz_CZ
), английский (en_US
), немецкий (de_DE
), испанский (es_ES
), французский (fr_FR
), иврит (he_IL
), итальянский (it_IT
), японский (ja_JP
), корейский (ko_KR
), польский (pl_PL
), португальский (pt_BR
), румынский (ro_RO
), русский (ru_RU
), тайский (th_TH
), турецкий (ttr_TR
), вьетнамский (vi_VN
), китайский упрощенный (zh_CN
), китайский традиционный (zh_TW
).
- Внутри метода
onActivityResult
вызовите методXLogin.finishAuthWithXsollaWidget
из библиотеки Login, передав в него следующие параметры:
activity
— текущая активность. Необходима для обработки контекста приложения.
activityResultRequestCode
— код запроса из методаonActivityResult
. Используется для идентификации исходного запроса.
activityResultCode
— код результата из методаonActivityResult
. Позволяет определить, была ли операция успешной.
activityResultData
— данные, возвращаемые изonActivityResult
. Содержат результаты выполнения операции.
callback
— обработчик статуса. Используется для обработки результата аутентификации.
- При обработке результата авторизации инициализируйте библиотеку Store.
Инициализация библиотеки Store:
- kotlin
XStore.init(<yourProjectId>, XLogin.token!!) // Project ID can be found in your Publisher Account next to the project name.
Установка SDK
- Скачайте Epic Games Launcher.
- Создайте новый проект Unreal Engine.
- Загрузите и установите SDK одним из способов:
- Чтобы загрузить и установить SDK через Unreal Engine Marketplace:
- Откройте страницу SDK на Unreal Engine Marketplace.
- Нажмите
Open in Launcher .
- Чтобы загрузить и установить SDK через Unreal Engine Marketplace:
- Перейдите в Epic Games Launcher.
- Нажмите
Install to Engine . - Откройте проект Unreal Engine в Unreal Editor.
- Перейдите в раздел
Settings > Plugins > Installed > Xsolla SDK , установите флажокEnabled и нажмите кнопкуRestart Now , чтобы сохранить настройки и перезапустить Unreal Editor.
- Нажмите
- Чтобы загрузить и установить SDK через GitHub:
- Скачайте архив с SDK для вашей версии движка.
- Распакуйте архив.
- Переместите папку с SDK в директорию
plugins
в корне вашего проекта Unreal Engine.
- Чтобы загрузить и установить SDK через GitHub:
Настройка SDK
- Откройте проект Unreal Engine в Unreal Editor.
- Перейдите в
Settings > Project Settings > Plugins > Xsolla Settings > General и укажите параметры проекта:
- В поле
Project ID укажите ID проекта, который можно найти в Личном кабинете рядом с названием проекта. - В поле
Login ID укажите ID варианта авторизации. Чтобы получить его, откройте проект в Личном кабинете, перейдите в раздел Login > Дашборд > проект авторизации и нажмите Скопировать ID рядом с названием варианта авторизации. В полеClient ID укажите ID клиента OAuth 2.0, который можно найти в Личном кабинете в разделе Login > проект авторизации > OAuth 2.0 аутентификация. - В поле
Redirect URI укажите URL-адрес или путь в приложении, на который перенаправляются пользователи после успешной аутентификации, подтверждения электронной почты или сброса пароля. Значение должно совпадать с указанным в Личном кабинете в разделе Login > проект авторизации > OAuth 2.0 аутентификация. - Задайте другие настройки, если необходимо (например, параметры отображения платежного интерфейса в разделе
Pay Station UI ).
- В поле
- В результате проект в Личном кабинете будет подключен к демокартам.
- Перейдите в
Content Browser > View Options и установите флажкиShow Engine Content иShow Plugin Content .
Открытие виджета Xsolla Login
Вызовите метод SDK AuthWithXsollaWidget
, передав следующие параметры:
WorldContextObject
— объект, который предоставляет контекст игрового мира (для вызова C++).SuccessCallback
— обработчик успешной аутентификации пользователя и получения токена (опционально).CancelCallback
— обработчик отмены аутентификации, срабатывающий при закрытии виджета пользователем без прохождения аутентификации (опционально).ErrorCallback
— обработчик ошибок, возникающих при процессе аутентификации (опционально).bRememberMe
— указывает, необходимо ли сохранять данные аутентификации (опционально). По умолчанию установлено значениеfalse
.Locale
— язык интерфейса (опционально). По умолчанию значение определяется по IP-адресу пользователя.State
— строка, используемая для дополнительной верификации пользователя на сервере приложения. По умолчанию установлено значениеxsollatest
.
Пример:
В standalone-сборках виджет открывается с помощью блупринта W_LoginBrowser
, который поставляется вместе с SDK.
Вы можете кастомизировать существующий блупринт для открытия виджета авторизации.
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.