Карта ключей для сопоставления JSON и профиля пользователя в Xsolla
Как это работает
Вы можете составить карту ключей, т. е. сопоставить поля объекта JSON, которые вы передаете в ответ на вебхуки Xsolla Login, со следующими свойствами профиля пользователя в системе Xsolla:
- дата рождения (
birthday
); - никнейм (
nickname
); - имя (
first_name
); - фамилия (
last_name
); - пол (
gender
); - ID пользователя на вашем сервере (
server_custom_id
).
Примечание
Карта ключей доступна только для следующих вебхуков Xsolla Login:
- для синхронизации данных с Web Shop;
- применения тегов слияния Mailchimp;
- интеграций с другими внешними системами
server_custom_id
, вы можете включить объединение аккаунтов по server_custom_id
. Это позволит нашей системе идентифицировать все аккаунты с одним и тем же server_custom_id
как принадлежащие одному пользователю.Для кого подходит
Партнерам, которые используют собственное хранилище данных пользователей и хотят использовать свои данные внутри Xsolla Login.
Как настроить
- В проекте в Личном кабинете перейдите в раздел Login.
- Выберите вариант авторизации и перейдите в раздел База пользователей.
- Выберите раздел Хранилище.
- Выберите пункт Собственное хранилище.
- Выберите вебхук, для которого вы хотите настроить карту ключей:
- проверка существования пользователя;
- создание пользователя;авторизация через социальные сети.
- В блоке Карта ключей укажите ключи, которые вы хотите сопоставить со свойствами пользовательского профиля.
- Переведите переключатель Включить связывание учетных записей пользователя в активное положение, чтобы Xsolla Login идентифицировал все аккаунты с одним и тем же
server_custom_id
как принадлежащие одному пользователю (опционально).
Примечание
Объединение аккаунтов по
server_custom_id
доступно, только если вы указываете ключ для свойства server_custom_id
в карте ключей.- Нажмите Сохранить изменения.
Примечание
Вы можете не включать все поля в карту ключей.
Примеры использования карты ключей
Передача данных пользователя из ответа на вебхук в JWT и свойства пользовательского профиля
- В ответ на вебхук на URL-адрес для проверки существования пользователя вы отправляете следующий объект JSON (набор параметров может быть любым):
Copy
- json
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}
- В Личном кабинете в карте ключей вы указали ключи для свойств
nickname
иserver_custom_id
:
- В ответ на запрос Get user details вы получите следующий JSON:
Copy
- json
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
.Использование карты ключей и связывания аккаунтов при авторизации в Web Shop
- Пользователь авторизуется в Web Shop по ID пользователя. ID пользователя записывается в поле
server_custom_id
JWT. - Web Shop отправляет вебхук Проверка пользователя в Web Shop на ваш сервер.
- Ваш сервер отвечает на вебхук HTTP-кодом
200
в случае успеха или404
, если пользователь не существует. - Web Shop авторизовывает пользователя.
- Пользователь авторизуется в Web Shop другим способом, например с помощью социальной сети.
- Web Shop перенаправляет пользователя на страницу социальной сети для подтверждения входа.
- Пользователь авторизуется в социальной сети.
- Социальная сеть возвращает данные профиля пользователя в Web Shop.
- Web Shop отправляет вебхук на ваш URL для входа через социальные сети.
- Ваш сервер сопоставляет данные пользователя, авторизованного по ID с данными профиля, полученными из социальной сети.
- Если удалось связать данные, пользователю, авторизованному через социальную сеть, присваивается ID, полученный при авторизации через ID пользователя. Ваш сервер отвечает кодом
2xx
и передает в теле ответа JSON, содержащий ID пользователя. - Web Shop сохраняет атрибуты пользователя и добавляет информацию, полученную в ответе на вебхук, в поле
partner_data
JWT. - Если в карте ключей вы указали ключ для
server_custom_id
и включили связывание аккаунтов, Web Shop сопоставит полученные данные пользователя со свойствами профиля пользователя на основе карты ключей и свяжет аккаунты. - Web Shop авторизует пользователя в тот же аккаунт, что и при аутентификации по ID пользователя.
Была ли статья полезна?
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.Продолжить чтение
Полезные ссылки
Собственное хранилище данных пользователейНашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.