Login / Отложенная регистрация в браузерных играх
  На главную

Login

Отложенная регистрация в браузерных играх

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

Пользователь может начать игру в браузере без регистрации. Через определенное время пользователю предлагается зарегистрироваться с сохранением прогресса в игре. Время ожидания регистрации необходимо реализовать на стороне игры.

Сценарий взаимодействия пользователя и игры:

  1. Неавторизованный пользователь начинает игру.
  2. Игра соотносит пользователя с информацией о сессии.
  3. Через определенное время игра предлагает пользователю зарегистрироваться для продолжения.
  4. Игра отправляет запрос на регистрацию с переданной информацией о сессии на сервер Xsolla Login.
  5. Сервер Xsolla Login регистрирует пользователя. В результате регистрации в JWT пользователя передается информация о сессии.
  6. Игра переносит прогресс в игре к зарегистрированному пользователю.
  7. Пользователь продолжает играть как авторизованный.

Примечание
В качестве информации о сессии пользователя передается ID сессии или JSON-строка с информацией о прогрессе пользователя.

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

Для партнеров, у которых уже подключен продукт Login и есть браузерная игра.

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

Чтобы сохранить прогресс пользователя после регистрации в игре:

  1. Передайте информацию о сессии пользователя.
  2. Перенесите игровой прогресс пользователю.

Передача информации о сессии пользователя

Передача информации о сессии пользователя зависит от способа интеграции продукта Login:

Интеграция через Login API

Передайте в запрос Register new user параметр payload. В качестве значения этого параметра укажите информацию о сессии пользователя.

Пример запроса (ID сессии пользователя):

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123 HTTP/1.1
Content-Type: application/json

{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123' \
  --header 'content-type: application/json' \
  --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'

Пример запроса (JSON-строка с информацией о прогрессе пользователя):

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload={"coins":120,"lvl":2} HTTP/1.1
Content-Type: application/json

{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=%7B%22coins%22%3A120%2C%22lvl%22%3A2%7D' \
  --header 'content-type: application/json' \
  --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'

Интеграция через виджет авторизации

Добавьте в код инициализации виджета параметр payload. В качестве значения этого параметра укажите информацию о сессии пользователя.

Пример кода инициализации виджета (ID сессии пользователя):

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: '00000000-0000-0000-0000-000000000000',
  preferredLocale: 'en_US',
  callbackUrl: 'https://example.com',
  payload: 'my_session_123'
});
</script>

Пример кода инициализации виджета (JSON-строка с информацией о прогрессе пользователя):

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: '00000000-0000-0000-0000-000000000000',
  preferredLocale: 'en_US',
  callbackUrl: 'https://example.com',
  payload: '{"coins":120,"lvl":2}'
});
</script>

Перенос игрового прогресса пользователю

После регистрации в поле payload JWT пользователя передается информация о сессии пользователя. Используйте эту информацию, чтобы перенести прогресс, полученный в ходе сессии. ID зарегистрированного пользователя можно найти в поле sub JWT пользователя.

Пример payload JWT (ID сессии пользователя):

Copy
Full screen
Small screen
{
  "email": "john-email@email.com",
  "exp": 1597904900,
  "iat": 1597818500,
  "is_master": true,
  "iss": "https://login.xsolla.com",
  "payload": "my_session_123",
  "promo_email_agreement": true,
  "publisher_id": 0,
  "sub": "00000000-0000-0000-0000-000000000000",
  "type": "xsolla_login",
  "username": "John Smith",
  "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}

Пример payload JWT (JSON-строка с информацией о прогрессе пользователя):

Copy
Full screen
Small screen
{
  "email": "john-email@email.com",
  "exp": 1597904900,
  "iat": 1597818500,
  "is_master": true,
  "iss": "https://login.xsolla.com",
  "payload": "{\"coins\":120,\"lvl\":2}",
  "promo_email_agreement": true,
  "publisher_id": 0,
  "sub": "00000000-0000-0000-0000-000000000000",
  "type": "xsolla_login",
  "username": "John Smith",
  "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}
Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Последнее обновление: 31 июля 2024

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

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