Карта ключей для сопоставления JSON и профиля пользователя в Xsolla

Как это работает

Вы можете составить карту ключей, т. е. сопоставить поля объекта JSON, которые вы передаете в ответ на вебхуки Xsolla Login, со следующими свойствами профиля пользователя в системе Xsolla:

  • дата рождения (birthday);
  • никнейм (nickname);
  • имя (first_name);
  • фамилия (last_name);
  • пол (gender);
  • ID пользователя на вашем сервере (server_custom_id).

Примечание
Карта ключей используется:. Если в карте ключей вы указываете ключ для свойства server_custom_id, вы можете включить объединение аккаунтов по server_custom_id. Это позволит нашей системе идентифицировать все аккаунты с одним и тем же server_custom_id как принадлежащие одному пользователю.

Для кого подходит

Партнерам, которые используют собственное хранилище данных пользователей и хотят использовать свои данные внутри Xsolla Login.

Как настроить

  1. В проекте в Личном кабинете перейдите в раздел Login.
  2. Выберите вариант авторизации и перейдите в раздел База пользователей.
  3. Выберите раздел Хранилище.
  4. Выберите пункт Собственное хранилище.
  5. Выберите вебхук, для которого вы хотите настроить карту ключей:
    • проверка существования пользователя;
    • создание пользователя;авторизация через социальные сети.
  6. В блоке Карта ключей укажите ключи, которые вы хотите сопоставить со свойствами пользовательского профиля.
  1. Переведите переключатель Включить связывание учетных записей пользователя в активное положение, чтобы Xsolla Login идентифицировал все аккаунты с одним и тем же server_custom_id как принадлежащие одному пользователю (опционально).
Примечание
Объединение аккаунтов по server_custom_id доступно, только если вы указываете ключ для свойства server_custom_id в карте ключей.
  1. Нажмите Сохранить изменения.
Примечание
Вы можете не включать все поля в карту ключей.

Примеры использования карты ключей

Передача данных пользователя из ответа на вебхук в JWT и свойства пользовательского профиля

  1. В ответ на вебхук на URL-адрес для проверки существования пользователя вы отправляете следующий объект 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}
  1. В Личном кабинете в карте ключей вы указали ключи для свойств nickname и server_custom_id:
  1. В ответ на запрос Get user details вы получите следующий JSON:
Copy
Full screen
Small screen
 1{
 2  "birthday": null,
 3  "country": null,
 4  "devices": [
 5    {
 6      "device": null,
 7      "last_used_at": null,
 8      "type": null
 9    },
10    {
11      "device": null,
12      "last_used_at": null,
13      "type": null
14    }
15  ],
16  "email": null,
17  "external_id": null,
18  "first_name": null,
19  "gender": null,
20  "groups": [
21    {
22      "id": 1,
23      "is_default": false,
24      "name": "admin"
25    },
26    {
27      "id": 5,
28      "is_default": false,
29      "name": "user"
30    }
31  ],
32  "id": null,
33  "is_anonymous": false,
34  "last_login": null,
35  "last_name": null,
36  "nickname": "gamer123",
37  "phone": null,
38  "phone_auth": null,
39  "registered": null,
40  "tag": null,
41  "username": null
42}
Примечание
Все значения, переданные в ответе на вебхук, попадут в JWT-токен пользователя, если вы их сопоставили через карту ключей. Для свойств профиля пользователя, значения которых отсутствуют в нашей системе, в ответе будет передано null.
Таким образом, вы можете управлять тем, какие данные из вашей системы попадут в профиль пользователя Xsolla и будут доступны через API и в токене.

Использование карты ключей и связывания аккаунтов при авторизации в Web Shop

  1. Пользователь авторизуется в Web Shop по ID пользователя. ID пользователя записывается в поле server_custom_id JWT.
  2. Web Shop отправляет вебхук Проверка пользователя в Web Shop на ваш сервер.
  3. Ваш сервер отвечает на вебхук HTTP-кодом 200 в случае успеха или 404, если пользователь не существует.
  4. Web Shop авторизовывает пользователя.
  5. Пользователь авторизуется в Web Shop другим способом, например с помощью социальной сети.
  6. Web Shop перенаправляет пользователя на страницу социальной сети для подтверждения входа.
  7. Пользователь авторизуется в социальной сети.
  8. Социальная сеть возвращает данные профиля пользователя в Web Shop.
  9. Web Shop отправляет вебхук на ваш URL для входа через социальные сети.
  10. Ваш сервер сопоставляет данные пользователя, авторизованного по ID с данными профиля, полученными из социальной сети.
  11. Если удалось связать данные, пользователю, авторизованному через социальную сеть, присваивается ID, полученный при авторизации через ID пользователя. Ваш сервер отвечает кодом 2xx и передает в теле ответа JSON, содержащий ID пользователя.
  12. Web Shop сохраняет атрибуты пользователя и добавляет информацию, полученную в ответе на вебхук, в поле partner_data JWT.
  13. Если в карте ключей вы указали ключ для server_custom_id и включили связывание аккаунтов, Web Shop сопоставит полученные данные пользователя со свойствами профиля пользователя на основе карты ключей и свяжет аккаунты.
  14. Web Shop авторизует пользователя в тот же аккаунт, что и при аутентификации по ID пользователя.
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.

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

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

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

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