Настройка аутентификации пользователя
Аутентификация позволяет пользователю покупать товары в Web Shop и видеть уникальные предложения в каталоге.
Основные возможности Web Shop с аутентификацией:
- Поддержка множества способов авторизации в Web Shop.
- Настройка персонализированных витрин и промокодов для авторизованных пользователей.
- Соблюдение местного законодательства по защите и обработке персональных данных.
- Ограничение частоты запросов и защита от DDoS-атак.
Вы можете выбрать один из следующих способов аутентификации пользователя:
- Аутентификация через ID пользователя:
- Упрощает интеграцию Web Shop с игрой.
- Виджет аутентификации через ID пользователя не требует регистрации и ввода пароля — пользователю достаточно ввести свой ID из игры или использовать для входа тот же аккаунт социальной сети, что и для входа в игру.
- Аутентификация через ID пользователя и диплинк:
- Диплинки можно использовать в качестве дополнительного метода авторизации при входе через ID пользователя.
- Виджет аутентификации через ID пользователя и диплинк не требует регистрации и ввода пароля — пользователю достаточно ввести свой ID из игры или войти через игру с помощью диплинка.
- Аутентификация через диплинк:
- Когда диплинк используется как основной способ входа, он позволяет сохранять платежные данные, чего нельзя сделать при авторизации через ID пользователя.
- Аутентификация пользователя через Xsolla Login:
- Предоставляет широкий выбор способов авторизации: через социальные сети, с помощью одноразовых кодов или ссылок, с помощью ввода логина и пароля.
- Виджет Xsolla Login поддерживает кастомизацию.
- Позволяет вводить возрастные ограничения на авторизацию.
- Аутентификация с привязкой ID пользователя:
- Позволяет сочетать безопасность Xsolla Login с преимуществами использования ID пользователя из игры. Виджет Xsolla Login функционирует изолированно от игрового клиента — взаимодействие с игрой осуществляется через вебхуки. Привязанный ID пользователя используется для быстрого начисления покупок пользователю в игру и для персонализированных предложений.
- Не требует изменений на стороне клиента игры и подходит для случаев, когда важно обеспечить доступ к аккаунту в Web Shop только для владельца — например, чтобы предотвратить несанкционированное использование баланса баллов лояльности другими пользователями.
Сценарий пользователя
- Пользователь переходит в Web Shop с настроенной аутентификацией через ID пользователя.
- Пользователь авторизуется в Web Shop одним из способов:
- Пользователь вводит свой ID в блоке Быстрый вход и нажимает кнопку входа.
- Пользователь нажимает кнопку покупки у выбранного товара или кнопку входа в верхней панели:
- Открывается модальное окно ввода ID пользователя или входа через социальную сеть.
- Пользователь вводит свой ID и нажимает Продолжить или выбирает одну из социальных сетей, нажав значок социальной сети, и проходит аутентификацию на странице социальной сети.

- Выполняется проверка существования пользователя. Если пользователь с указанным ID или аккаунтом социальной сети существует в игре, пользователь будет авторизован в Web Shop. В противном случае пользователь получит сообщение об ошибке.
Как настроить
- В вашем приложении реализуйте обработку вебхука для проверки существования пользователя.
При получении вебхука приложение должно выполнять следующие действия:
- Поиск пользователя по полученному в вебхуке ID пользователя.
- Отправка одного из кодов статуса в зависимости от результатов поиска пользователя:
- 200 HTTP-код с ответом вебхука, если пользователь найден;
- 404 HTTP-код, если пользователь с таким ID не зарегистрирован в игре.
- Отправка атрибутов пользователя для персонализации.
В проекте в Личном кабинете перейдите в раздел Каналы продаж > Веб-сайты.
В панели нужного сайта нажмите Открыть Site Builder.
В проекте в аккаунте для мобильных игр перейдите в раздел Web Shop.
Нажмите панель вашего сайта.
- Если ваш сайт содержит несколько страниц, выберите нужную страницу:
- Нажмите на название текущей страницы в верхней части конструктора.
- Выберите страницу из раскрывающегося списка.
- В конструкторе вашего сайта перейдите в блок Настройки входа.
- Выберите вариант ID пользователя.
- В раскрывающемся списке выберите Новый вариант Авторизации.
- Введите URL-адрес, на который вы хотите получать вебхуки. URL-адрес может отличаться от указанного в разделе Настройки проекта > Вебхуки.
- Введите URL-адрес для получения вебхуков. Этот URL-адрес может отличаться от указанного в разделе Настройки > Вебхуки.
https://. Протокол http:// не поддерживается.- Настройте авторизацию через социальные сети, которые используются для авторизации в вашем приложении (опционально):
- Откройте ваш проект в Личном кабинете и перейдите в раздел Авторизация.
- Нажмите Настроить в панели нужного варианта авторизации.
- На странице навигации перейдите к блоку Аутентификация и выберите раздел Авторизация через социальные сети.
- Настройте авторизацию через социальные сети, которые используются для авторизации в вашем приложении (опционально):
- Откройте ваш проект в аккаунт для мобильных игр и перейдите в раздел Другие инструменты > Авторизация.
- Нажмите Настроить в панели нужного варианта авторизации.
- На странице навигации перейдите к блоку Аутентификация и выберите раздел Авторизация через социальные сети.
- Чтобы подключить социальную сеть, в карточке социальной сети нажмите значок ⚙ справа от названия и выберите пункт Подключить.
Диплинк — это специальный URL, который ведет пользователя не просто на главную страницу приложения или сайта, а сразу на конкретный раздел, страницу или выполняет определенное действие.
Диплинки можно использовать в качестве дополнительного метода авторизации при входе через ID пользователя. Если у пользователя на мобильном устройстве установлена игра, с помощью диплинка он будет перенаправлен в игру для получения авторизационного токена.
Сценарий пользователя
В мобильном приложении
- Неавторизованный пользователь в Web Shop нажимает кнопку входа или кнопку покупки. Открывается модальное окно ввода ID пользователя или входа через мобильную игру.
- Пользователь нажимает кнопку входа через игру.
- Пользователь автоматически перенаправляется в игру, а оттуда — в Web Shop как авторизованный пользователь.
В настольной версии
- Неавторизованный пользователь в Web Shop нажимает кнопку входа или кнопку покупки. Открывается модальное окно ввода ID пользователя или входа в мобильную версию игры с помощью QR-кода.
- Пользователь сканирует QR-код с помощью мобильного устройства.
- На мобильном устройстве открывается Web Shop.
- Пользователь автоматически перенаправляется в игру, а оттуда — в Web Shop как авторизованный пользователь.
Сценарий взаимодействия сервисов
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
participant U as Пользователь
participant WS as Web Shop
participant B as Браузер
participant MOS as Мобильная ОС
participant G as Игра
participant LA as Login API
U->>WS: Нажимает кнопку входа через мобильную игру
activate WS
WS->>B: Перенаправляет пользователя по диплинку
activate B
B->>MOS: Выполняет системный вызов для открытия мобильной игры
activate MOS
MOS->>G: Открывает мобильную игру
activate G
G->>LA: Генерирует токен авторизации
activate LA
LA-->>G: Возвращает токен авторизации
deactivate LA
G->>MOS: Выполняет системный вызов для открытия браузера с токеном в URL-адресе
deactivate G
MOS-->>B: Открывает браузер с токеном в URL-адресе
deactivate MOS
B-->>WS: Открывает страницу Web Shop для авторизованного пользователя
deactivate B
WS-->>U: Отображает имя пользователя в заголовке
deactivate WS
Как настроить
На стороне игры
- В настройках вашей игры зарегистрируйте URL-схему для открытия игры через диплинк:
- в приложениях под Android — в файле
AndroidManifest.xml; - в приложениях под iOS — в файле
Info.plist.
- в приложениях под Android — в файле
- После регистрации схемы, когда пользователь авторизуется в Web Shop через игру, по указанному адресу должна открываться игра.
- Пример ссылки, открывающей игру через зарегистрированную URL-схему:
scheme— уникальный идентификатор вашей игры, используемый в пользовательской URL-схеме для открытия приложения и перехода к нужному действию.authorize— действие, которое должно быть выполнено после открытия игры. Используйте название действия, которое соответствует действиям в операционной системе вашего приложения.operationPayload=<VALUE>— параметр с информацией для генерации токена при авторизации. Параметр содержит данные в формате Base64 и генерируется на стороне Xsolla.
scheme://authorize?operationPayload=<VALUE>, где:Убедитесь, что параметр operationPayload обрабатывается корректно. Он должен передаваться без изменений — вам не нужно его расшифровывать или формировать самостоятельно.
Если параметр отсутствует или изменен, возникнет ошибка с кодом 400.
- Примеры:
- xml
1<key>CFBundleURLTypes</key>
2 <array>
3 <dict>
4 <key>CFBundleTypeRole</key>
5 <string>Editor</string>
6 <key>CFBundleURLSchemes</key>
7 <array>
8 <string>scheme</string>
9 </array>
10 </dict>
11 </array>

- xml
1<intent-filter>
2 <action android:name="android.intent.action.VIEW" />
3 <category android:name="android.intent.category.DEFAULT" />
4 <category android:name="android.intent.category.BROWSABLE" />
5 <data android:scheme="scheme" android:host="authorize" />
6</intent-filter>
- Реализуйте генерацию авторизационного токена в формате JWT, используя ID пользователя из игры.
| Параметр | Тип | Описание |
|---|---|---|
loginId | string | ID варианта авторизации из Личного кабинета. Обязательный. |
settings.projectId | integer | ID проекта в Личном кабинете, который указан рядом с названием вашего проекта или в адресной строке браузера. URL-адрес имеет вид https://publisher.xsolla.com/<merchantId>/projects/<projectId>. Обязательный. |
settings.merchantId | integer | ID продавца в Личном кабинете, который указан в разделе Настройки компании > Компания или в адресной строке браузера на любой странице Личного кабинета. URL-адрес имеет вид https://publisher.xsolla.com/<merchantId>/. Обязательный. |
user.id | string | ID пользователя в игре. Обязательный. |
user.country | string | Двухбуквенное обозначение страны в верхнем регистре согласно стандарту ISO 3166-1 alpha-2. Ознакомьтесь со списком стран, поддерживаемых Xsolla, а также с процессом определения страны. Пример: US |
operationPayload | string | Параметр с информацией для генерации токена при авторизации. Параметр содержит данные в формате Base64 и генерируется на стороне Xsolla. Обязательный. |
| Параметр | Тип | Описание |
|---|---|---|
loginId | string | ID варианта авторизации из аккаунта для мобильных игр. Обязательный. |
settings.projectId | integer | ID проекта в аккаунте для мобильных игр, который указан рядом с названием вашего проекта или в адресной строке браузера. URL-адрес имеет вид https://publisher.xsolla.com/<merchantId>/projects/<projectId>. Обязательный. |
settings.merchantId | integer | ID продавца в вашем аккаунте для мобильных игр, который указан в разделе Настройки компании > Компания или в адресной строке браузера на любой странице вашего аккаунта. URL-адрес имеет вид https://xsolla.com/for/mobile-games/account/<merchantId>/. Обязательный. |
user.id | string | ID пользователя в игре. Обязательный. |
user.country | string | Двухбуквенное обозначение страны в верхнем регистре согласно стандарту ISO 3166-1 alpha-2. Ознакомьтесь со списком стран, поддерживаемых Xsolla, а также с процессом определения страны. Пример: US |
operationPayload | string | Параметр с информацией для генерации токена при авторизации. Параметр содержит данные в формате Base64 и генерируется на стороне Xsolla. Обязательный. |
- Пример вызова метода API генерации токена пользователя с использованием библиотеки curl:
- curl
1curl -X 'POST' \
2'https://sb-user-id-service.xsolla.com/api/v1/user-id/token' \
3-H 'accept: /' \
4-H 'Content-Type: application/json' \
5-d '{
6 "loginId": "000001aa-001a-0ab0-00001-01a01a01a01a",
7 "settings": {
8 "projectId": 123456,
9 "merchantId": 123456
10 },
11 "user": {
12 "id": "123",
13 "country": "US"
14 }
15 "operationPayload": "kosarb2NyrtIWaegJAH1f6P7XrBYPXYDya5coc_ZzcfiS_5o4QTUAL-CcGRC_Kv4CAtg"
16}'
- Вы получите ответ вида
{token="JWT_TOKEN"}.Добавьте всплывающее окно с уведомлением об успешной авторизации (опционально).
Реализуйте открытие Web Shop в браузере, используя полученный токен пользователя.
- Пример URL-адреса для открытия Web Shop в браузере для авторизованного пользователя:
https://example.com/?token={token}, если вы используете кастомный домен.https://example.xsolla.site/?token={token}, если вы используете домен Xsolla.
- Где
{token} — авторизационный токен пользователя.На стороне Конструктора сайтов
- В проекте в Личном кабинете перейдите в раздел Каналы продаж > Веб-сайты.
- В проекте в аккаунте для мобильных игр перейдите в раздел Web Shop.
- Нажмите Настроить в карточке вашего сайта Web Shop с аутентификацией через ID пользователя.
- Перейдите к блоку Настройки аутентификации и выберите раздел ID пользователя.
- Установите переключатель Авторизация по диплинку в активное положение.
- В поле URL диплинка укажите ссылку для авторизации пользователя.
- Если вы используете блок Быстрый вход на сайте:
- Перейдите к блоку Быстрый вход.
- В секции Настройки блока установите переключатель QR-код в активное положение.
- Для проверки авторизации нажмите Просмотр.
- Для публикации сайта нажмите Опубликовать.
Диплинк — это специальный URL, который ведет пользователя не просто на главную страницу приложения или сайта, а сразу на конкретный раздел, страницу или выполняет определенное действие.
Диплинки позволяют пользователю авторизоваться в Web Shop через игру в один клик, вместо того чтобы проходить процесс авторизации через ID пользователя или через Xsolla Login.
Если у пользователя на мобильном устройстве установлена игра, с помощью диплинка он будет перенаправлен в игру для получения авторизационного токена.
Когда диплинк используется как основной способ входа, он позволяет сохранять платежные данные, чего нельзя сделать при авторизации через ID пользователя. В этом случае диплинк лишь помогает быстрее авторизоваться, но не добавляет новых возможностей.
Сценарий пользователя
В мобильном приложении
- Неавторизованный пользователь в Web Shop нажимает кнопку входа или кнопку покупки. Открывается модальное окно входа через мобильную игру.
- Пользователь нажимает кнопку входа через игру.
- Пользователь автоматически перенаправляется в игру, а оттуда — в Web Shop как авторизованный пользователь.
В настольной версии
- Неавторизованный пользователь в Web Shop нажимает кнопку входа или кнопку покупки. Открывается модальное окно ввода ID пользователя или входа в мобильную версию игры с помощью QR-кода.
- Пользователь сканирует QR-код с помощью мобильного устройства.
- На мобильном устройстве открывается Web Shop.
- Пользователь автоматически перенаправляется в игру, а оттуда — в Web Shop как авторизованный пользователь.
Сценарий взаимодействия сервисов
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
participant U as Пользователь
participant WS as Web Shop
participant B as Браузер
participant MOS as Мобильная ОС
participant G as Игра
participant LA as Login API
U->>WS: Нажимает кнопку входа через мобильную игру
activate WS
WS->>B: Перенаправляет пользователя по диплинку
activate B
B->>MOS: Выполняет системный вызов для открытия мобильной игры
activate MOS
MOS->>G: Открывает мобильную игру
activate G
G->>LA: Генерирует токен авторизации
activate LA
LA-->>G: Возвращает токен авторизации
deactivate LA
G->>MOS: Выполняет системный вызов для открытия браузера с токеном в URL-адресе
deactivate G
MOS-->>B: Открывает браузер с токеном в URL-адресе
deactivate MOS
B-->>WS: Открывает страницу Web Shop для авторизованного пользователя
deactivate B
WS-->>U: Отображает имя пользователя в заголовке
deactivate WS
Как настроить
На стороне игры
- В настройках вашей игры зарегистрируйте URL-схему для открытия игры через диплинк:
- в приложениях под Android — в файле
AndroidManifest.xml; - в приложениях под iOS — в файле
Info.plist.
- в приложениях под Android — в файле
- После регистрации схемы, когда пользователь авторизуется в Web Shop через игру, по указанному адресу должна открываться игра.
- Пример ссылки, открывающей игру через зарегистрированную URL-схему:
scheme— уникальный идентификатор вашей игры, используемый в пользовательской URL-схеме для открытия приложения и перехода к нужному действию.authorize— действие, которое должно быть выполнено после открытия игры. Используйте название действия, которое соответствует действиям в операционной системе вашего приложения.operationPayload=<VALUE>— параметр с информацией для генерации токена при авторизации. Параметр содержит данные в формате Base64 и генерируется на стороне Xsolla.
scheme://authorize?operationPayload=<VALUE>, где:Убедитесь, что параметр operationPayload обрабатывается корректно. Он должен передаваться без изменений — вам не нужно его расшифровывать или формировать самостоятельно.
Если параметр отсутствует или изменен, возникнет ошибка с кодом 400.
- Примеры:
- xml
1<key>CFBundleURLTypes</key>
2 <array>
3 <dict>
4 <key>CFBundleTypeRole</key>
5 <string>Editor</string>
6 <key>CFBundleURLSchemes</key>
7 <array>
8 <string>scheme</string>
9 </array>
10 </dict>
11 </array>

- xml
1<intent-filter>
2 <action android:name="android.intent.action.VIEW" />
3 <category android:name="android.intent.category.DEFAULT" />
4 <category android:name="android.intent.category.BROWSABLE" />
5 <data android:scheme="scheme" android:host="authorize" />
6</intent-filter>
- Реализуйте генерацию авторизационного токена в формате JWT, используя ID пользователя из игры.
| Параметр | Тип | Описание |
|---|---|---|
loginId | string | ID варианта авторизации из Личного кабинета. Обязательный. |
settings.projectId | integer | ID проекта в Личном кабинете, который указан рядом с названием вашего проекта или в адресной строке браузера. URL-адрес имеет вид https://publisher.xsolla.com/<merchantId>/projects/<projectId>. Обязательный. |
settings.merchantId | integer | ID продавца в Личном кабинете, который указан в разделе Настройки компании > Компания или в адресной строке браузера на любой странице Личного кабинета. URL-адрес имеет вид https://publisher.xsolla.com/<merchantId>/. Обязательный. |
user.id | string | ID пользователя в игре. Обязательный. |
user.country | string | Двухбуквенное обозначение страны в верхнем регистре согласно стандарту ISO 3166-1 alpha-2. Ознакомьтесь со списком стран, поддерживаемых Xsolla, а также с процессом определения страны. Пример: US |
operationPayload | string | Параметр с информацией для генерации токена при авторизации. Параметр содержит данные в формате Base64 и генерируется на стороне Xsolla. Обязательный. |
| Параметр | Тип | Описание |
|---|---|---|
loginId | string | ID варианта авторизации из аккаунта для мобильных игр. Обязательный. |
settings.projectId | integer | ID проекта в аккаунте для мобильных игр, который указан рядом с названием вашего проекта или в адресной строке браузера. URL-адрес имеет вид https://publisher.xsolla.com/<merchantId>/projects/<projectId>. Обязательный. |
settings.merchantId | integer | ID продавца в вашем аккаунте для мобильных игр, который указан в разделе Настройки компании > Компания или в адресной строке браузера на любой странице вашего аккаунта. URL-адрес имеет вид https://xsolla.com/for/mobile-games/account/<merchantId>/. Обязательный. |
user.id | string | ID пользователя в игре. Обязательный. |
user.country | string | Двухбуквенное обозначение страны в верхнем регистре согласно стандарту ISO 3166-1 alpha-2. Ознакомьтесь со списком стран, поддерживаемых Xsolla, а также с процессом определения страны. Пример: US |
operationPayload | string | Параметр с информацией для генерации токена при авторизации. Параметр содержит данные в формате Base64 и генерируется на стороне Xsolla. Обязательный. |
Перед первой генерацией авторизационного токена необходимо обратиться к персональному менеджеру проекта или написать на [email protected] для активации настройки токена. Это необходимо для корректной работы безопасного метода авторизации пользователей.
- Пример вызова метода API генерации токена пользователя с использованием библиотеки curl:
- curl
1curl -X 'POST' \
2'https://sb-user-id-service.xsolla.com/api/v1/user-id/token' \
3-H 'Accept: /' \
4-H 'Content-Type: application/json' \
5-d '{
6 "loginId": "string",
7 "settings": {
8 "projectId": 0,
9 "merchantId": 0
10 },
11 "user": {
12 "id": "string",
13 "country": "string",
14 "name": "string",
15 "picture": "string"
16 },
17 "operationPayload": "eyJ4c29sbGF1aWQiOiIzNzE5Nzc5NjU1MDE2Nzc2MzcifQ%3D%3D"
18}'
- Вы получите ответ вида
{token="JWT_TOKEN"}.Добавьте всплывающее окно с уведомлением об успешной авторизации (опционально).
Реализуйте открытие Web Shop в браузере, используя полученный токен пользователя.
- Пример URL-адреса для открытия Web Shop в браузере для авторизованного пользователя:
https://example.com/?token={token}, если вы используете кастомный домен.https://example.xsolla.site/?token={token}, если вы используете домен Xsolla.
- Где
{token} — авторизационный токен пользователя.На стороне Конструктора сайтов
- В проекте в Личном кабинете перейдите в раздел Каналы продаж > Веб-сайты.
- Нажмите Настроить в карточке вашего сайта Web Shop.
- В проекте в аккаунте для мобильных игр перейдите в раздел Web Shop.
- В панели вашего сайта нажмите значок ⋮ и выберите Настроить.
- Перейдите к блоку Настройки аутентификации и выберите раздел Deep link.
- В поле URL диплинка укажите ссылку для авторизации пользователя.
- Если вы используете блок Быстрый вход на сайте:
- Перейдите к блоку Быстрый вход.
- В секции Настройки блока можно настроить стиль отображения кнопки входа через QR-код.
- Для проверки авторизации нажмите Просмотр.
- Для публикации сайта нажмите Опубликовать.
Сценарий пользователя
- Пользователь переходит в Web Shop с настроенной аутентификацией через Xsolla Login.
- Пользователь нажимает кнопку покупки у выбранного товара, кнопку входа в верхней панели или кнопку входа в блоке Быстрый вход.
- Открывается модальное окно со способами авторизации, настроенными в Xsolla Login.
- Пользователь переходит к авторизации, при необходимости вводит дополнительные данные.
- Выполняется проверка существования пользователя. Если пользователь существует в игре, он будет авторизован в Web Shop. В противном случае пользователь получит сообщение об ошибке.
Как настроить
- В конструкторе вашего сайта перейдите в блок Настройки входа.
- Выберите вариант авторизации Xsolla Login.
- В раскрывающемся списке выберите Новый вариант Авторизации.
В результате автоматически будет создан вариант авторизации с возможностью аутентификации пользователя по email-адресу и паролю. Для созданного варианта URL-адрес Web Shop будет указан в качестве callback URL для перенаправления пользователя в следующих случаях:
- после успешной аутентификации;
- после подтверждения электронной почты;
- после сброса пароля;
- в случае ошибки аутентификации.
При смене домена Web Shop callback URL в настройках варианта авторизации изменяется автоматически.
- Перейдите к настройке созданного варианта авторизации из модального окна или нажмите Настройте способы авторизации в блоке Xsolla Login.
Для аутентификации в Web Shop должны быть настроены те же социальные сети, что и для аутентификации в вашем приложении. Если социальные сети не настроены, будет доступна аутентификация пользователя по email-адресу и паролю.
При подключении аутентификации в Web Shop через социальные сети используйте те же Application ID и Application Secret, что и для аутентификации в вашем приложении.

- Подключите хранилище для данных пользователя.
В зависимости от способа хранения данных пользователей вам доступна разная функциональность продукта (см. раздел Сравнение хранилищ для данных пользователей).
Хранилище Xsolla
Если вы хотите, чтобы продукт Login выполнял всю логику аутентификации, используйте хранилище Xsolla. С этим типом хранилища вам будут доступны более гибкие настройки.
При создании варианта авторизации хранилище Xsolla подключается по умолчанию, никаких дополнительных действий по его настройке не требуется. Если вы изменили тип хранилища по умолчанию, чтобы вновь подключить хранилище Xsolla, выполните следующие действия:
- Перейдите к блоку База пользователей и выберите раздел Хранилище.
- Выберите пункт Хранилище Xsolla и нажмите Сохранить изменения.
Хранилище PlayFab
Если вы хотите использовать функциональность PlayFab для работы с пользователями, подключите хранилище PlayFab. В хранилище записывается следующая информация:
- имя пользователя;
- email-адрес пользователя;
- пароль пользователя;
- поля с расширенной формы регистрации, если она настроена.
Хранилище PlayFab предоставляет вам доступ к следующим функциям:
- регистрация пользователей;
- аутентификация по email-адресу или имени пользователя и паролю;
- аутентификация через Twitch;
- сброс пароля пользователя;
- блокировка пользователя.
Чтобы подключить хранилище:
- Перейдите к блоку База пользователей и выберите раздел Хранилище.
- Выберите пункт PlayFab.
- В поле Title ID введите значение того же поля из личного кабинета PlayFab.
- Нажмите Сохранить изменения.
Хранилище Firebase
Если вы хотите использовать функциональность Firebase для работы с пользователями, подключите хранилище Firebase. В хранилище записывается следующая информация:
- имя пользователя;
- email-адрес пользователя;
- пароль пользователя;
- поля с расширенной формы регистрации, если она настроена.
- Перейдите к блоку База пользователей и выберите раздел Хранилище.
- Выберите пункт Firebase.
- В поле Ключ API введите значение того же поля из личного кабинета Firebase.
- Нажмите Сохранить изменения.
Собственное хранилище
Если вы используете собственную систему авторизации и храните пользовательские данные на стороне вашего приложения, подключите собственное хранилище.
Собственное хранилище предоставляет вам доступ к следующим функциям:
- регистрация пользователей;
- аутентификация пользователя с помощью email-адреса или имени пользователя и пароля;
- аутентификация без пароля по номеру телефона;
- аутентификация через социальные сети;
- сброс пароля пользователя.
Подключение собственного хранилища
- Перейдите к блоку База пользователей и выберите раздел Хранилище.
- Выберите пункт Собственное хранилище.
- Введите URL-адреса для отправки запросов API:
- Нажмите Сохранить изменения.
- Для заданных вами URL-адресов реализуйте API, который будет отвечать следующим образом:
- HTTP 200 / HTTP 204 для успешных запросов. Если требуется, JSON с дополнительными данными пользователя можно разместить в теле ответа. Переданные данные записываются в JWT (параметр
partner_data). - Другие HTTP-коды для неуспешных запросов.
- HTTP 200 / HTTP 204 для успешных запросов. Если требуется, JSON с дополнительными данными пользователя можно разместить в теле ответа. Переданные данные записываются в JWT (параметр
- Чтобы сопоставлять поля JSON и свойства профиля пользователя в Xsolla, а также настроить связывание аккаунтов по ID пользователя на вашем сервере, воспользуйтесь инструкцией.
- Чтобы аутентификация без пароля по номеру телефона работала корректно, ответ вашего API должен содержать параметр
account_id, который соответствует ID пользователя на стороне клиента.
Настройка обработки запросов от сервера Xsolla Login
Запросы от сервера Xsolla Login отправляются на URL, указанные в Личном кабинете, с заголовком Authorization: Bearer <JWT>. JWT подписан секретным ключом проекта.
- Провалидируйте полученный JWT.
- Если валидация прошла успешно, декодируйте JWT и убедитесь, что в его структуре есть поля из таблицы ниже. Для декодирования вы можете использовать библиотеку.
| Поле | Тип | Описание |
|---|---|---|
| exp | Unix Timestamp | Дата и время истечения JWT. Срок жизни JWT — 7 минут. |
| iat | Unix Timestamp | Дата и время выдачи JWT. |
| iss | string | Сервис, подписавший JWT: https://login.xsolla.com. |
| request_type | string | Константа: gateway_request. |
| xsolla_login_project_id | string (UUID) | ID вашего варианта авторизации в Личном кабинете. |
| social_access_token | string (UUID) | Токен доступа социальной сети, через которую аутентифицировался пользователь. Чтобы подключить передачу этого поля, обратитесь к персональному менеджеру проекта или напишите на [email protected]. |
- json
1{
2 "exp": 1573635020,
3 "iat": 1573634600,
4 "iss": "https://login.xsolla.com",
5 "request_type": "gateway_request",
6 "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
7}
Сценарий пользователя
- Пользователь впервые переходит в Web Shop с настроенной аутентификацией с привязкой ID пользователя.
- Пользователь нажимает кнопку покупки у выбранного товара, кнопку входа в верхней панели или кнопку входа в блоке Быстрый вход.
- Открывается модальное окно со способами авторизации, настроенными в Xsolla Login.
- Пользователь переходит к авторизации, при необходимости вводит дополнительные данные.

- После успешной авторизации через Xsolla Login открывается модальное окно для привязки ID пользователя из игры.

- Выполняется проверка существования пользователя. Если пользователь с таким ID существует в игре, он будет авторизован в Web Shop. В противном случае пользователь получит сообщение об ошибке.
Как настроить
В вашем приложении реализуйте обработку вебхука для проверки существования пользователя.
При получении вебхука приложение должно выполнять следующие действия:
- Поиск пользователя по полученному в вебхуке ID пользователя.
- Отправка одного из кодов статуса в зависимости от результатов поиска пользователя:
- 200 HTTP-код с ответом вебхука, если пользователь найден;
- 404 HTTP-код, если пользователь с таким ID не зарегистрирован в игре.
- Отправка атрибутов пользователя для персонализации.
- В проекте в Личном кабинете перейдите в раздел Каналы продаж > Веб-сайты.
- В панели нужного сайта нажмите Открыть Site Builder.
- В проекте в аккаунте для мобильных игр перейдите в раздел Web Shop.
- Нажмите панель вашего сайта.
- Если ваш сайт содержит несколько страниц, выберите нужную страницу:
- Нажмите на название текущей страницы в верхней части конструктора.
- Выберите страницу из раскрывающегося списка.
- В конструкторе вашего сайта перейдите в блок Настройки входа.
- Выберите вариант Авторизация с привязкой ID пользователя.
- В раскрывающемся списке выберите Новый вариант Login или один из существующих проектов.
- Введите URL-адрес, на который вы хотите получать вебхуки.
https://. Протокол http:// не поддерживается.Вы можете настроить любой вариант авторизации, но для упрощения пользовательского опыта на первом этапе аутентификации мы рекомендуем использовать авторизацию через социальные сети:
a. Откройте ваш проект в Личном кабинете и перейдите в раздел Игроки > Авторизация. b. Нажмите Настроить в панели нужного проекта Login.
c. Перейдите к блоку Аутентификация и выберите раздел Авторизация через социальные сети.
d. Чтобы подключить социальную сеть, в карточке социальной сети нажмите значок ⚙ справа от названия и выберите пункт Подключить.
Вы можете настроить любой вариант авторизации, но для упрощения пользовательского опыта на первом этапе аутентификации мы рекомендуем использовать авторизацию через социальные сети: a. В проекте в аккаунте для мобильных игр перейдите в раздел Другие инструменты > Авторизация.
b. Нажмите Настроить в панели нужного проекта Login.
c. Перейдите к блоку Аутентификация и выберите раздел Авторизация через социальные сети.
d. Чтобы подключить социальную сеть, в карточке социальной сети нажмите значок ⚙ справа от названия и выберите пункт Подключить.
Настройка блока Быстрый вход
Блок Быстрый вход позволяет сделать заметным обязательный этап авторизации и упростить переход пользователя к покупке.

Для использования блока Быстрый вход должен быть предварительно выбран вариант авторизации в разделе Настройки входа. Внешний вид блока и его возможности зависят от выбранного способа аутентификации.
Если на сайте настроена аутентификация через ID пользователя, в блоке Быстрый вход отображается поле для ввода ID и кнопка входа.
Возможности:
- Аутентификация пользователя без дополнительного перехода в модальное окно.
- Настройка содержимого блока. Вы можете включить и настроить следующие разделы:
- Заголовок.
- Описание.
- Инструкция, как найти ID пользователя.
- Пользовательский фон.
Вы также можете расширить возможности блока, например добавить текст, кнопку или изображение с помощью JS-кода.
Для способа аутентификации через ID пользователя в разделе Настройки входа также необходимо указать URL-адрес, на который вы хотите получать вебхук. Если не указать его, сайт не может быть опубликован, так как аутентификация пользователей будет недоступна.
Аутентификация пользователей при предварительном просмотре сайта возможна без добавления URL-адреса вебхука.
Блок Быстрый вход автоматически добавляется на сайты, созданные с использованием шаблона Web Shop.
Если в вашем сайте этот блок отсутствует, вы можете добавить его вручную в конструкторе сайтов.
Чтобы добавить блок Быстрый вход:
- В проекте в Личном кабинете перейдите в раздел Каналы продаж > Веб-сайты.
- В разделе Сайты выберите ваш сайт и нажмите Открыть Site Builder.
- В проекте в аккаунте для мобильных игр перейдите в раздел Web Shop.
- Нажмите панель вашего сайта.
- Нажмите Добавить блок.
- Выберите блок Быстрый вход.
Продолжить чтение
Полезные ссылки
Способ интеграцииНашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.