Собственное хранилище данных пользователей

Если вы используете собственное хранилище данных пользователей, Xsolla Login выступает как посредник и все данные для идентификации пользователя хранятся на вашей стороне. Xsolla Login передает данные аутентификации в токене в заголовке и теле вебхуков.

Примечание
Email-адреса пользователей, данные социальных сетей и атрибуты пользователей хранятся на стороне Xsolla. Пароли не хранятся на стороне Xsolla.
При использовании собственного хранилища данных пользователей вам доступны:
Примечание
Если вы тестируете интеграцию локально, то POST-запросы от Xsolla не доходят до URL-адресов вида http://localhost:3000/my-webhook-endpoint. Сервис ngrok позволяет создать туннель для внешнего доступа, благодаря чему вы сможете локально получать запросы от Xsolla. Подробнее вы можете прочитать в документации ngrok.

Сценарий взаимодействия

Примечание
Сценарий взаимодействия зависит от выбранного вами протокола аутентификации: JWT или OAuth 2.0.
Примечание
Максимальная длина JSON c дополнительными данными о пользователе – 1000 символов.
Следующие данные могут быть добавлены в свойства пользовательского профиля:

Вы также можете обновить атрибуты пользователя, для этого передайте массив объектов с атрибутами пользователя. Структура объектов описана ниже.

Структура объекта с атрибутом пользователя:

ПараметрТипОписание
attr_type
stringТип атрибута, определяет уровень доступа пользователя к атрибутам сервиса:
  • client — значения для таких атрибутов вводятся пользователем или задаются согласно внутриигровой логике в клиентской части вашего приложения. Значения атрибутов этого типа вводятся пользователем или задаются в соответствии с внутриигровой логикой на стороне клиента, например имя и характеристики персонажа, уровень сложности игры и т. д. Используется по умолчанию.
  • server — значения для таких атрибутов задаются и редактируются только на серверной части вашего приложения. Рекомендуется использовать их для настройки характеристик игрового персонажа или пользовательских параметров, которые не должны регулярно меняться. Например: получение бонуса, ключевые параметры игрового персонажа, категории пользователей и т. д.
key
stringНазвание атрибута, которое используется для идентификации атрибута пользователя. Должно быть уникальным для каждого пользователя.
Максимальная длина: 256 символов. Вы можете использовать цифры, латинские буквы, подчеркивания и дефисы.
permission
string or nullТип доступа к атрибутам пользователя, влияет на список атрибутов, которые возвращают методы:
Возможные значения: public, private (по умолчанию).
read_only
stringЗащищен ли атрибут от изменений. По умолчанию false и изменять значения атрибута разрешено.
value
stringЗначение атрибута пользователя.
Максимальная длина: 256 символов.

Регистрация пользователя

Примечание
Сценарий взаимодействия зависит от выбранного вами протокола аутентификации: JWT или OAuth 2.0.

Аутентификация по имени пользователя и паролю

Примечание
Сценарий взаимодействия зависит от выбранного вами протокола аутентификации: JWT или OAuth 2.0.

Аутентификация без пароля по номеру телефона

Примечание
Сценарий взаимодействия зависит от выбранного вами протокола аутентификации: JWT или OAuth 2.0.

Аутентификация без пароля по email

Примечание
Сценарий взаимодействия зависит от выбранного вами протокола аутентификации: JWT или OAuth 2.0.

Аутентификация через социальные сети

Примечание
Сценарий взаимодействия зависит от выбранного вами протокола аутентификации: JWT или OAuth 2.0.

Сброс пароля пользователя

  1. Клиент отправляет POST-запрос Reset password на сервер Xsolla Login. Запрос должен содержать следующие обязательные параметры:
    • query-параметр projectId — ID варианта авторизации в Личном кабинете;
    • body-параметры username — имя пользователя, допустимая длина: от 3 до 255 символов.
  2. Сервер Xsolla Login отправляет письмо пользователю для подтверждения сброса пароля.
  3. Пользователь подтверждает сброс пароля в письме и переходит на страницу ввода нового пароля.
  4. Пользователь вводит новый пароль.
  5. Сервер Xsolla Login отправляет вебхук на URL для сброса пароля.
  6. В случае неуспешного сброса пароля вы можете передать сообщение об ошибке, которое будет отображено в виджете авторизации. Для этого в ответе на вебхук для создания пользователя передайте объект error, в котором:
    • В параметре code укажите код ошибки, например 011-002.
    • В параметре description укажите текст ошибки.

Пример вебхука на URL для сброса пароля:

Copy
Full screen
Small screen

http

  • http
  • curl
 1POST https://your.hostname/your_reset_uri HTTP/1.1
 2Authorization: Bearer {JWT}
 3Content-Type: application/json
 4
 5{
 6  "username": "john@gmail.com",
 7  "fields": {
 8    "password": "NewPa$$word1"
 9  }
10}
1curl --request POST \
2  --url 'https://your.hostname/your_reset_uri' \
3  --header 'authorization: bearer_JWT' \
4  --header 'content-type: application/json' \
5  --data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'

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

Примечание
Обновление токена доступно только при использовании протокола аутентификации OAuth 2.0.
  1. Когда срок действия access-токена истекает, клиент отправляет POST-запрос Generate JWT на сервер Xsolla Login. Тело запроса должно содержать следующие параметры:
    • grant_type — тип получения JWT, передайте значение refresh_token;
    • client_idID клиента OAuth 2.0;
    • refresh_token — refresh-токен, полученный в ответ на запрос авторизации пользователя.
  2. Сервер Xsolla Login отправляет вебхук на URL обновления токена. Ответ на вебхук должен иметь формат, описанный в сценарии взаимодействия. В ответе вы можете указать список пользовательских атрибутов и/или любой необходимый объект JSON. Объект JSON, переданный вами в ответе, записывается в поле partner_data JWT пользователя.
Примечание
Чтобы сопоставлять поля JSON и свойства профиля пользователя в Xsolla, а также настроить связывание аккаунтов по ID пользователя на вашем сервере, воспользуйтесь инструкцией.
Пример вебхука:
Copy
Full screen
Small screen
1POST https://your.hostname/your_refrsh_token_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{}

Пример ответа на вебхук с атрибутами пользователей:

Copy
Full screen
Small screen
 1{
 2    "attributes": [
 3      {
 4        "attr_type": "server",
 5        "key": "company",
 6        "permission": "private",
 7        "value": "facebook-promo"
 8      },
 9      {
10        "attr_type": "server",
11        "key": "custom-id",
12        "permission": "private",
13        "value": 48582
14      }
15    ]
16}

Пример ответа с объектом JSON:

Copy
Full screen
Small screen
 1{
 2  "user": {
 3    "player_id": "12345678",
 4    "email": "user@example.com"
 5  },
 6  "user_info": {
 7    "username": "gamer123",
 8    "user_first_name": "John",
 9    "user_last_name": "Doe",
10    "gender": "male",
11    "birthday": "1990-05-15",
12    "country": "US",
13    "language": "en"
14  },
15  "subscription_status": "active",
16  "loyalty_level": "gold"
17
18}
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.

Продолжить чтение

Последнее обновление: 8 октября 2025

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

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