JSON-файлы с настройками виджета

Настройки виджета хранятся в следующих JSON-файлах:

Вы можете переиспользовать файлы настройки и отображать один и тот же виджет на разных страницах. URL-адреса настроек указываются в коде инициализации виджета:

Copy
Full screen
Small screen
1<script>
2const xl = new XsollaLogin.Widget({
3  // Other settings
4  settingsJSON: "url_string",
5  socialsJSON: "url_string",
6  themeJSON: "url_string"
7});
8</script>

Основные настройки

К основным настройкам виджета относятся:

Шаблон файла settingsJSON:

Copy
Full screen
Small screen
 1{
 2  "authorization_methods": {
 3    // Authorization methods
 4  },
 5  "registration_fields": {
 6    // Registration fields
 7  },
 8  "email_validation": {
 9    // Settings for email validation
10  }
11
12  // Other widget settings
13}

Методы авторизации

Объект authorization_methods содержит массив с доступными методами авторизации. В зависимости от переданных настроек виджет по-разному отображает страницу входа.

Примечание
В массив должен быть передан хотя бы один метод. Каждый метод должен встречаться в массиве только один раз.

Доступные методы авторизации:

  • email — авторизация по электронной почте и паролю. Параметр передается по умолчанию, если в настройках нет объекта authorization_methods с конкретным списком методов.
  • social — авторизация через социальные сети. Параметр передается по умолчанию, если в настройках нет объекта authorization_methods с конкретным списком методов.
  • username — авторизация по имени пользователя и паролю.
  • phone — авторизация по номеру телефона и SMS-коду.
  • passwordless-email-code — авторизация по электронной почте и коду из письма.

Пример:

Copy
Full screen
Small screen
1{
2  "authorization_methods": ["email", "phone"]
3}

Поля регистрации

Объект registration_fields содержит массив полей, которые отображаются на странице регистрации виджета.

ПараметрТипОписание
email
emailEmail-адрес пользователя.
username
stringАккаунт пользователя.
password
passПароль.
password_confirm
passПодтверждение пароля.
given-name
stringИмя пользователя.
family-name
stringФамилия пользователя.
nickname
stringНикнейм пользователя.
bday
dateДата рождения.
gender
stringВыбор пола.
country-name
selectВыбор страны.
platform
multi-selectВыбор платформы.
promo_email_agreement
booleanСогласие на рекламную рассылку.
Примечание
Массив должен содержать минимум одно поле. Поля отображаются в том порядке, в котором они были переданы в массиве.

Для поля можно дополнительно указать следующие параметры:

  • required (boolean) — является ли поле обязательным для заполнения;
  • default_value (array) — массив значений, выбранных по умолчанию (например, для списка стран или платформ);
    • validation (object) — параметры валидации:
    • allowed_characters (string) — разрешенные символы для ввода в поле. Перечисляются через запятую как значения регулярного выражения.
    • max_length (number) — максимальное количество символов.
    • min_length (number) — минимальное количество символов.
    • regexps (array with strings) — регулярное выражение для проверки введенного значения.

Пример:

Copy
Full screen
Small screen
 1{
 2  "registration_fields": [
 3    {
 4      "name": "username",
 5      "required": false,
 6      "type": "str",
 7      "validation": {
 8        "allowed_characters": "A-Z, a-z, 0-9",
 9        "max_length": 16,
10        "min_length": 5,
11        "regexps": ["^.{5,16}$"]
12      }
13    },
14    { "name": "email", "required": true, "type": "email", "validation": {} },
15    { "name": "bday", "required": true, "type": "date", "validation": {} },
16    {
17      "name": "platform",
18      "default_value": ["MacOS", "Nintendo Switch", "Steam"],
19      "required": false,
20      "type": "multi-select",
21      "validation": {}
22    },
23    {
24      "name": "country-name",
25      "default_value": ["US", "GB", "DE"],
26      "required": false,
27      "type": "select",
28      "validation": {}
29    },
30    { "name": "password", "required": true, "type": "pass", "validation": {} },
31    {
32      "name": "password_confirm",
33      "required": false,
34      "type": "pass",
35      "validation": {}
36    },
37    {
38      "name": "promo_email_agreement",
39      "required": false,
40      "type": "bool",
41      "validation": {}
42    }
43  ]
44}

Проверка email-адреса

Объект email_validation содержит параметр se_xsolla_email_validator, который проверяет данные, введенные в поле email.

ПараметрТипОписание
use_xsolla_email_validator
booleanИспользовать ли дополнительную проверку данных, введенных в поле email. Если передано true — проверка выполняется на фронтенде и бэкенде с использованием SMTP, RFC и Greylisting. Если передано false — проверка выполняется только на фронтенде. Значение по умолчанию — false.
Пример:
Copy
Full screen
Small screen
1{
2  "email_validation": {
3    "use_xsolla_email_validator": true
4  }
5}

Дополнительные настройки

Дополнительные настройки передаются в корне JSON-объекта файла settingsJSON.

ПараметрТипОписание
can_register
booleanВключить ли пользователю возможность регистрации. Значение по умолчанию — true.
can_reset_password
booleanВключить ли пользователю возможность сброса пароля. Значение по умолчанию — true.
stringСсылка на политику согласия пользователей.
stringСсылка на политику использования cookie.
privacy_policy
stringСсылка на политику конфиденциальности.
tos_url
stringСсылка на условия использования.
game_name
stringИмя проекта или игры. Отображается в некоторых методах авторизации.
Пример:
Copy
Full screen
Small screen
1{
2  "can_register": true,
3  "can_reset_password": true,
4  "cookie_policy": "https://someurl.com"
5}

Настройки социальных сетей

Для авторизации через социальные сети в файле socialsJSON передаются следующие параметры:

  • список регионов;
  • параметры и типы социальных сетей для каждого региона.

Шаблон файла socialsJSON:

Copy
Full screen
Small screen
 1{
 2  "1": {
 3    "primary": [
 4      // Array of social networks for primary type
 5    ],
 6    "secondary": [
 7      // Array of social networks for secondary type
 8    ]
 9  },
10  "2": {
11    "primary": [
12      // Array of social networks for primary type
13    ],
14    "secondary": [
15      // Array of social networks for secondary type
16    ]
17  },
18  "3": {
19    "primary": [
20      // Array of social networks for primary type
21    ],
22    "secondary": [
23      // Array of social networks for secondary type
24    ]
25  },
26  "4": {
27    "primary": [
28      // Array of social networks for primary type
29    ],
30    "secondary": [
31      // Array of social networks for secondary type
32    ]
33  },
34  "5": {
35    "primary": [
36      // Array of social networks for primary type
37    ],
38    "secondary": [
39      // Array of social networks for secondary type
40    ]
41  },
42  "6": {
43    "primary": [
44      // Array of social networks for primary type
45    ],
46    "secondary": [
47      // Array of social networks for secondary type
48    ]
49  }
50}

Каждому региону соответствует номер:

  • 1 — Европа;
  • 2 — Китай;
  • 3 — Северная и Южная Корея;
  • 4 — СНГ;
  • 5 — Северная и Южная Америка;
  • 6 — остальные страны.

Для каждого региона определяется тип социальной сети — первичный (primary) или вторичный (secondary). Первичные социальные сети отображаются в виде большой кнопки и более заметны на странице виджета. Вторичные социальные сети отображаются в виде маленьких кнопок и менее заметны.

Каждый тип социальной сети содержит массив объектов:

ПараметрТипОписание
name
stringНазвание социальной сети. Доступные варианты: amazon, apple, baidu, battlenet, china_telecom, discord, email, epicgames, facebook, github, google, google-plus, instagram, kakao, linkedin, mailru, microsoft, msn, naver, ok, paradox, paypal, pinterest, qq, reddit, steam, slack, twitch, twitter, vimeo, vk, wechat, weibo, xbox, yahoo, yandex, youtube.
jwt
stringСсылка для открытия социальной сети, если используется авторизация через JWT.
oauth2
stringСсылка для открытия социальной сети, если используется авторизация по протоколу OAuth2.0.
Примечание
Каждая социальная сеть должна встречаться в массиве только один раз. Массив может быть пустым.
Пример:
Copy
Full screen
Small screen
 1{
 2  "1": {
 3    "primary": [{
 4      "name": "google",
 5      "jwt": "https://login.xsolla.com/api/social/google/login_redirect",
 6      "oauth2": "https://login.xsolla.com/api/oauth2/social/google/login_redirect"
 7    }],
 8    "secondary": [{
 9        "name": "facebook",
10        "jwt": "https://login.xsolla.com/api/social/facebook/login_redirect",
11        "oauth2": "https://login.xsolla.com/api/oauth2/social/facebook/login_redirect"
12      },
13      {
14        "name": "twitter",
15        "jwt": "https://login.xsolla.com/api/social/twitter/login_redirect",
16        "oauth2": "https://login.xsolla.com/api/oauth2/social/twitter/login_redirect"
17      }
18    ]
19  },
20  "2": {
21    "primary": [{
22      "name": "wechat",
23      "jwt": "https://login.xsolla.com/api/social/wechat/login_redirect",
24      "oauth2": "https://login.xsolla.com/api/oauth2/social/wechat/login_redirect"
25    }],
26    "secondary": [{
27        "name": "facebook",
28        "jwt": "https://login.xsolla.com/api/social/facebook/login_redirect",
29        "oauth2": "https://login.xsolla.com/api/oauth2/social/facebook/login_redirect"
30      },
31      {
32        "name": "twitter",
33        "jwt": "https://login.xsolla.com/api/social/twitter/login_redirect",
34        "oauth2": "https://login.xsolla.com/api/oauth2/social/twitter/login_redirect"
35      },
36      {
37        "name": "steam",
38        "jwt": "https://login.xsolla.com/api/social/steam/login_redirect",
39        "oauth2": "https://login.xsolla.com/api/oauth2/social/steam/login_redirect"
40      }
41    ]
42  }
43}

Настройки темы

К настройкам темы виджета относятся:

Шаблон файла themeJSON:

Copy
Full screen
Small screen
 1{
 2  // Color and size settings
 3
 4  "header": {
 5    // Header settings
 6  },
 7  "background": {
 8    // Widget background settings
 9  },
10  "rounding": {
11    // Rounding settings
12  },
13  "tabs": {
14    // Tab settings
15  },
16  "primary_socials": {
17    // Display settings for the primary social networks
18  },
19  "secondary_socials": {
20    // Display settings for the secondary social networks
21  },
22  "scene": {
23    // Scene settings
24  }
25}

Цвет и размер виджета

Цвет и размер виджета передаются в корне JSON-объекта файла themeJSON.

ПараметрТипОписание
primary_color
stringОсновной цвет виджета (цвет фона кнопок и границ у активных полей ввода) в формате RGB или HEX. Значение по умолчанию — #0073F7.
secondary_color
stringВторичный цвет виджета (цвет границ у неактивных полей ввода) в формате RGB или HEX. Значение по умолчанию — #DADADA.
error_color
stringЦвет текста ошибок в формате RGB или HEX. Значение по умолчанию — #EB002F.
text_color
stringЦвет основного текста в формате RGB или HEX. Значение по умолчанию — #000000.

Пример:

Copy
Full screen
Small screen
1{
2  "primary_color": "#708090",
3  "secondary_color": "#4682B4"
4}

Скругление

Объект rounding содержит параметры скругления для отдельных элементов виджета. Свойство применяется ко всем четырем углам одновременно.

ПараметрТипОписание
inputs
stringСкругление в пикселях для активных полей ввода. Значение по умолчанию — 6px.
buttons
stringСкругление в пикселях для кнопок. Значение по умолчанию — 100px.
widget
stringСкругление в пикселях для виджета. Значение по умолчанию — 6px.
Пример:
Copy
Full screen
Small screen
1{
2  "rounding": {
3    "inputs": "8px",
4    "widget": "8px"
5
6  }
7}

Фон

Объект background содержит параметры фона виджета.

ПараметрТипОписание
color
stringЦвет заливки фона в формате RGB или HEX. Значение по умолчанию — #FFFFFF.
image
objectФоновое изображение. Объект содержит ссылку на изображение и настройки прозрачности. Значение прозрачности по умолчанию — 1.
Пример:
Copy
Full screen
Small screen
1{
2  "background": {
3    "color": "#708090",
4    "image": {
5      "url": "https://someurl.com",
6      "opacity": "3"
7    }
8  }
9}

Заголовок

Объект header содержит параметры заголовка виджета — области над всеми полями виджета.

ПараметрТипОписание
image
objectФоновое изображение заголовка. Объект содержит ссылку на изображение, настройки прозрачности и размер фонового изображения. Значение прозрачности по умолчанию — 1.
Доступные значения размера фонового изображения соответствуют значениям CSS-свойства background-size (по умолчанию — cover).
Пример:
Copy
Full screen
Small screen
1{
2  "header": {
3    "image": {
4      "url": "https://someurl.com",
5      "opacity": "3",
6      "size": "cover"
7    }
8  }
9}

Вкладки

Объект tabs содержит параметр hide, который управляет отображением вкладок авторизации/регистрации на виджете.

ПараметрТипОписание
hide
booleanСкрывать ли вкладки авторизации/регистрации на виджете. Используется со значением true, если, например, необходимо временно скрыть возможность регистрации или отображать регистрацию и авторизацию на отдельных страницах. Значение по умолчанию — false.
Пример:
Copy
Full screen
Small screen
1{
2  "tabs": {
3    "hide": true
4  }
5}

Отображение социальных сетей

Объекты primary_socials и secondary_socials содержат параметр hide, который управляет отображением социальных сетей первичного и вторичного типа на виджете.

ПараметрТипОписание
hide
booleanСкрывать ли социальные сети. Значение по умолчанию — false.
Пример:
Copy
Full screen
Small screen
1{
2  "primary_socials": {
3    "hide": true
4  },
5  "secondary_socials": {
6    "hide": false
7  }
8}

Сцена

Объект scene содержит параметры для сцены — области вокруг виджета.

ПараметрТипОписание
color
stringЦвет заливки фона в формате RGB или HEX. Значение по умолчанию — #FFFFFF.
image
objectФоновое изображение. Объект содержит ссылку на изображение и размер фонового изображения. Доступные значения размера фонового изображения соответствуют значениям CSS-свойства background-size (по умолчанию — cover).
Пример:
Copy
Full screen
Small screen
1{
2  "scene": {
3    "color": "#708090",
4    "image": {
5      "url": "https://someurl.com",
6      "size": "cover"
7    }
8  }
9}
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Последнее обновление: 19 сентября 2025

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

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