Аутентификация через собственного провайдера OAuth 2.0
Как это работает
Вы можете добавить авторизацию пользователя через вашу социальную сеть, используя протокол OAuth 2.0. Чтобы включить кнопку для вашей социальной сети на виджете авторизации, укажите данные провайдера в Личном кабинете.

Сценарий аутентификации
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
actor User as User
participant TP as 3rd party
participant XL as Xsolla Login
participant OP as Partner OAuth2 Server
User->>TP: Clicks login button
TP->>XL: Calls Auth via social network (Xsolla Login API)
XL->>OP: Calls partner's Authorization URL
alt Success
OP-->>XL: Sends authorization code to https://login.xsolla.com/api/social/callback
else Dependency service unavailable
OP-->>XL: Sends "Dependency service unavailable" error. Error code = "010-035"
end
XL->>OP: Calls partner's Token URL to exchange authorization code to access token
alt Success
OP-->>XL: Sends access token
else Error getting token
OP-->>XL: Sends "Error occurred while getting OAuth 2.0 Access token" error. Error code = "010-015"
end
XL->>OP: Calls partner's Your info URL to get user data
alt Success
OP-->>XL: Sends user data
else Error getting profile
OP-->>XL: Sends "Failed to get social profile" error. Error code = "010-036"
end
XL-->>TP: Returns Xsolla Login token
TP-->>User: User is authenticated
Сценарий первого входа
Пользователь нажимает кнопку Log in with [Your Platform] на виджете авторизации.
Пользователь перенаправляется на вашу страницу входа или согласия (адрес указан в поле Authorization URL в настройках).
Пользователь вводит учетные данные и подтверждает доступ в вашей системе.
Ваша система перенаправляет пользователя обратно в Xsolla с кодом авторизации.
Xsolla обращается к вашей системе для обмена кода на токен доступа (адрес указан в поле Token URL в настройках).
Xsolla получает данные профиля пользователя (ID, электронная почта и т.д.) из вашей системы, используя токен доступа (адрес указан в поле Your info URL в настройках).
Пользователь авторизован и возвращается в приложение как аутентифицированный пользователь Xsolla.
Сценарий возврата пользователя
Пользователь нажимает кнопку Log in with [Your Platform] на виджете авторизации.
Пользователь перенаправляется на вашу страницу входа или согласия (адрес указан в поле Authorization URL в настройках).
Ваша система распознает активную сессию и пропускает экран ввода учетных данных. Если ваша система требует повторной аутентификации при каждом посещении, пользователь снова увидит форму авторизации.
Ваша система проверяет, предоставлял ли пользователь ранее запрашиваемые разрешения. Если согласие уже было дано и не отозвано, экран согласия пропускается.
Ваша система перенаправляет пользователя обратно в Xsolla с кодом авторизации.
Xsolla обращается к вашей системе для обмена кода на токен доступа (адрес указан в поле Token URL в настройках).
Xsolla получает актуальные данные профиля пользователя из вашей системы, используя токен доступа (адрес указан в поле Your info URL в настройках).
Пользователь авторизован и возвращается в приложение. Полный сценарий обычно завершается за несколько секунд без видимого взаимодействия со стороны пользователя.
Неудачная аутентификация
URL авторизации недоступен (ошибка 010-035)
Пользователь нажимает кнопку Log in with [Your Platform] на виджете авторизации.
Пользователь перенаправляется на вашу страницу входа или согласия (адрес указан в поле Authorization URL в настройках).
Сервер OAuth2 партнера недоступен и возвращает ошибку.
Xsolla Login получает ошибку “Сервис зависимости недоступен” (010-035) и не продолжает выполнение.
Ошибка обмена токенами (ошибка 010-015)
Пользователь нажимает кнопку Log in with [Your Platform] на виджете авторизации.
Пользователь перенаправляется на вашу страницу входа или согласия (адрес указан в поле Authorization URL в настройках).
Пользователь вводит учетные данные и подтверждает доступ в вашей системе.
Ваша система перенаправляет пользователя обратно в Xsolla с кодом авторизации.
Xsolla обращается к вашей системе для обмена кода на токен доступа (адрес указан в поле Token URL в настройках).
Сервер OAuth2 партнера не может выдать токен и возвращает ошибку.
Xsolla Login получает ошибку “Ошибка при получении токена доступа OAuth 2.0” (010-015) и не продолжает выполнение.
Ошибка получения данных пользователя (ошибка 010-036)
Пользователь нажимает кнопку Log in with [Your Platform] на виджете авторизации.
Пользователь перенаправляется на вашу страницу входа или согласия (адрес указан в поле Authorization URL в настройках).
Пользователь вводит учетные данные и подтверждает доступ в вашей системе.
Ваша система перенаправляет пользователя обратно в Xsolla с кодом авторизации.
Xsolla обращается к вашей системе для обмена кода на токен доступа (адрес указан в поле Token URL в настройках).
Xsolla получает данные профиля пользователя (ID, электронная почта и т.д.) из вашей системы, используя токен доступа (адрес указан в поле Your info URL в настройках).
Сервер OAuth2 партнера не может вернуть данные пользователя.
Xsolla Login получает ошибку “Не удалось получить социальный профиль” (010-036) и не продолжает выполнение.
Как получить
Чтобы включить авторизацию через OAuth 2.0:
Добавьте
https://login.xsolla.com/api/social/oauth2/callbackв качестве разрешенного URI перенаправления в настройках вашего собственного провайдера OAuth 2.0, чтобы предотвратить ошибки авторизации.Откройте ваш проект в Личном кабинете и перейдите в раздел Players > Login.
Нажмите Configure в панели опции классической авторизации.
Перейдите в блок Authentication и выберите OAuth 2.0 login connection.
Заполните следующие поля:
Authorization name — имя интеграции. Используется для идентификации в Личном кабинете. Может содержать цифры, латинские буквы, дефисы и подчеркивания без пробелов, максимальная длина — 100 символов.
Authorization URL — URL метода, используемого для аутентификации пользователя.
Token URL — URL метода, используемого для получения токена доступа.
Your info URL — URL метода, используемого для получения данных профиля пользователя (таких как ID и электронная почта) с использованием токена доступа.
Client ID — уникальный идентификатор клиента на сервере авторизации. Может содержать цифры, латинские буквы, дефисы и подчеркивания без пробелов, максимальная длина — 255 символов.
Client secret key — уникальный ID, сгенерированный вашей системой авторизации. Может содержать цифры, латинские буквы, дефисы и подчеркивания без пробелов, длина — 8-255 символов.
Permission scope — список прав доступа, которые ваша система запрашивает у пользователя во время авторизации (например,
openid,profile,email).
Настройте Key name map:
Укажите имя ключа для адреса электронной почты в вашей системе (необязательно).
Укажите имя ключа для идентификатора пользователя в вашей системе.
В разделе Settings укажите дополнительные настройки аутентификации (необязательно):
auth_content_type— значение заголовкаContent-Type.auth_header— заголовок, который передает токен авторизации при запросе данных пользователя (авторизация в заголовке).auth_param— имя query-параметра, который передает токен авторизации при запросе данных пользователя (авторизация в параметре).token_type— тип токена. Возможные значения:Bearer,OAuth.use_pkce— флаг, указывающий на использование технологии PKCE (Proof Key for Code Exchange) во время авторизации. Настоятельно рекомендуется активировать это для обеспечения наивысшего уровня безопасности.
ПримечаниеИмена ключей должны начинаться с$., например,$.response[0].emailи$.response[0].id.

Если вы используете интеграцию через виджет авторизации, настройте кастомизацию:
Укажите Authorization button name. Максимальная длина — 30 символов.
Загрузите ваш логотип. Рекомендуемый размер: 24 × 24px. Поддерживаемые форматы: JPG, PNG и SVG.
Установите цвет кнопки авторизации.
Нажмите Save changes.
Если вы используете интеграцию через методы Login API, настройте передачу ID вашего провайдера в
provider_nameв следующем формате:"<authorization_name>-<publisher_id>", где<authorization_name>— это имя интеграции, указанное вами в настройках провайдера, а<publisher_id>— это ID вашего проекта в Личном кабинете. В зависимости от выбранного протокола авторизации используйте следующие методы для передачи параметраprovider_name:
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.