Настройка аутентификации через диплинк
Диплинки позволяют пользователю авторизоваться в Web Shop через игру в один клик, вместо того чтобы проходить процесс авторизации через ID пользователя или через Xsolla Login.
Если у пользователя на мобильном устройстве установлена игра, с помощью диплинка он будет перенаправлен в игру для получения авторизационного токена.
Сценарий пользователя
В мобильном приложении
- Неавторизованный пользователь в Web Shop нажимает кнопку входа или кнопку покупки. Открывается модальное окно ввода ID пользователя или входа через мобильную игру.
- Пользователь нажимает кнопку входа через игру.
- Пользователь перенаправляется в игру, после чего автоматически перенаправляется в Web Shop как авторизованный пользователь.
В настольной версии
- Неавторизованный пользователь в Web Shop нажимает кнопку входа или кнопку покупки. Открывается модальное окно ввода ID пользователя или входа в мобильную версию игры с помощью QR-кода.
- Пользователь сканирует QR-код с помощью мобильного устройства, после чего на мобильном устройстве пользователя открывается Web Shop.
- На мобильном устройстве пользователя открывается игра.
- Пользователь автоматически перенаправляется в Web Shop на мобильном устройстве как авторизованный пользователь.
Сценарий взаимодействия сервисов
Как настроить
На стороне игры
- В настройках вашей игры зарегистрируйте URL-схему для открытия игры через диплинк:
- в приложениях под Android — в файле
AndroidManifest.xml
; - в приложениях под iOS — в файле
Info.plist
.
- в приложениях под Android — в файле
gamename://authorize
, где:gamename
— название вашей игры, которая должна открываться на мобильном устройстве для авторизации пользователя;authorize
— пример названия действия, которое должно быть выполнено после открытия игры gamename. Используйте название действия, которое соответствует действиям в операционной системе вашего приложения.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>gamename</string>
</array>
</dict>
</array>
Пример регистрации URL-схемы в приложениях под Android:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="gamename" android:host="authorize" />
</intent-filter>
- Реализуйте генерацию авторизационного токена в формате JWT, используя ID пользователя из игры.
Параметр | Тип | Описание |
---|---|---|
loginId | string | ID варианта авторизации из Личного кабинета. Обязательный. |
webhookUrl | string | URL-адрес для получения вебхука Проверка пользователя в Web Shop. URL-адрес должен совпадать с адресом, указанным при настройке аутентификации через ID пользователя. Xsolla ожидает в ответ на вебхук 200 HTTP-код, чтобы авторизовать пользователя в Web Shop. Если Xsolla получит ответ с 404 HTTP-кодом или не получит ответ, пользователь авторизован не будет.Вы можете указать значение "webhookUrl": "https://nowebhook.com" , чтобы отправка вебхука при аутентификации через диплинк была отключена. В этом случае проверка существования пользователя на стороне Xsolla не выполняется, поэтому убедитесь, что в параметре user.id вы передаете ID пользователя, который существует в игре.Обязательный. |
settings.projectId | string | ID проекта в Личном кабинете, который указан рядом с названием вашего проекта или в адресной строке браузера. URL-адрес имеет вид https://publisher.xsolla.com/merchant ID/Publisher Account section . Обязательный. |
user.id | string | ID пользователя в игре. Обязательный. |
user.name | string | Имя пользователя. Обязательный. |
Пример вызова метода API генерации токена пользователя с использованием библиотеки curl:
- curl
curl --location 'https://sb-user-id-service.xsolla.com/api/v1/user-id' \
--header 'Content-Type: application/json' \
--data '{
"loginId": "000001aa-001a-0ab0-00001-01a01a01a01a",
"webhookUrl": "https://nowebhook.com",
"settings": {
"projectId": 123456,
"merchantId": 123456
},
"user": {
"id": "123",
"name": "a-user-name"
}
}'
Вы получите ответ вида {token=“JWT_TOKEN”}
.
- Добавьте всплывающее окно с уведомлением об успешной авторизации (опционально).
- Реализуйте открытие Web Shop в браузере, используя полученный токен пользователя.
Пример создания URL-адреса для открытия Web Shop в браузере для авторизованного пользователя:
https://example.com/?token={token}
, если вы используете кастомный домен.https://example.xsollasitebuilder.com/?token={token}
, если вы используете домен Xsolla.
{token}
— авторизационный токен пользователя.На стороне Конструктора сайтов
Вы можете выполнить настройки на стороне Конструктора сайта самостоятельно, используя примеры кода, приведенные ниже.За помощью в настройке обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.
- Откройте проект в Личном кабинете.
- В боковом меню нажмите Конструктор сайтов.
- Нажмите Настроить в карточке вашего сайта Web Shop с аутентификацией через ID пользователя.
- Перейдите к блоку Настройки аутентификации и выберите раздел ID пользователя.
- Установите переключатель Авторизация по диплинку в положение Вкл.
- В поле URL диплинка укажите ссылку для авторизации пользователя.
- Если вы используете блок Быстрый вход на сайте:
- Перейдите к блоку Быстрый вход.
- В секции Настройки блока установите переключатель QR-код в положение Вкл.
- Для проверки авторизации нажмите Просмотр.
- Для публикации сайта нажмите Опубликовать.
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.