PlayFab

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

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

  • имя пользователя;
  • email-адрес пользователя;
  • пароль пользователя;
  • поля с расширенной формы регистрации, если она настроена.
Эти данные также хранятся в базе данных Иксоллы. Пароль пользователя валидируется на стороне PlayFab.

При использования хранилища PlayFab вам доступны:

В качестве клиента вы можете использовать виджет авторизации или ваше приложение. Сценарий взаимодействия клиента и сервера Авторизации Иксолла:

  1. Клиент отправляет запросы на сервер Авторизации Иксолла. Формат запросов описан в группах методов JWT, OAuth 2.0 и General.
  2. Сервер Авторизации Иксолла отправляет запросы в PlayFab.
  3. Сервер Авторизации Иксолла обрабатывает ответ от PlayFab и возвращает результат клиенту.
  4. Клиент обрабатывает ответ.

Регистрация пользователя в PlayFab

Регистрация пользователей выполняется в соответствии со сценарием. Для завершения регистрации вы можете настроить отправку письма для подтверждения аккаунта пользователя.

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

  1. Клиент отправляет запрос Register a New User на сервер Авторизации Иксолла.
  2. Сервер Авторизации Иксолла отправляет запрос на регистрацию.
  3. Информация о пользователе записывается в базу данных Иксоллы.
  4. Сервер Авторизации Иксолла отправляет запрос на изменение данных в PlayFab.
  5. Если вы настроили подтверждение аккаунта:
    1. При использовании методов API для интеграции продукта, регистрация считается завершенной.
    2. При использовании виджета авторизации для интеграции продукта, пользователь перенаправляется на страницу с сообщением: Письмо со ссылкой для подтверждения аккаунта отправлено на {email}.
    Если настройка не выполнена, после регистрации пользователь будет сразу авторизован.

Подтверждение аккаунта пользователя в PlayFab

Чтобы настроить отправку письма для подтверждения аккаунта, выполните шаги:

  1. Настройте свой проект в PlayFab в соответствии с инструкцией.
  2. Убедитесь, что шаги Create an email template и Create a rule to send an email when a contact email is updated из раздела Requirements выполнены.
  3. Обратитесь к аккаунт-менеджеру проекта.

Note: По умолчанию после регистрации в проекте, который использует хранилище PlayFab, пользователь может авторизоваться в аккаунте без подтверждения своего email-адреса.

Аутентификация по email-адресу пользователя и паролю

Доступны два типа аутентификации по email-адресу пользователя и паролю — JWT и OAuth 2.0.

Аутентификация (JWT):

  1. Клиент отправляет запрос Auth by Username and Password на сервер Авторизации Иксолла.
  2. Сервер Авторизации Иксолла отправляет запрос на аутентификацию в PlayFab.
  3. Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
    • Значение PlayFabId из ответа на запрос в PlayFab записывается в поле external_account_id.
    • Значение SessionTicket из ответа на запрос в PlayFab записывается в поле session_ticket.
  4. Пользователь перенаправляется на login_url с query-параметром token. В параметр token записывается JWT пользователя.

Аутентификация (OAuth 2.0):

  1. Клиент отправляет запрос Auth by Username and Password с параметром redirect_uri на сервер Авторизации Иксолла.
  2. Сервер Авторизации Иксолла отправляет запрос на аутентификацию в PlayFab.
  3. Сервер Авторизации Иксолла возвращает login_url вместе с code в query-параметре и переданным redirect_uri.
  4. Пользователь перенаправляется на redirect_uri с query-параметром code.
  5. Клиент отправляет запрос Generate JWT на сервер Авторизации Иксолла для обмена полученного code на JWT пользователя.
  6. Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
    • Значение PlayFabId из ответа на запрос в PlayFab записывается в поле external_account_id.
    • Значение SessionTicket из ответа на запрос в PlayFab записывается в поле session_ticket, если в запрос Auth by Username and Password был передан scope=playfab.

Если в базе данных Иксоллы нет записи о пользователе:

  1. Записывается информация о пользователе.
  2. Сервер Авторизации Иксолла отправляет запрос на изменение данных в PlayFab.

Аутентификация через Twitch

Для аутентификации пользователей через Twitch необходимо настроить социальную сеть в PlayFab. Доступны два типа аутентификации через социальную сеть Twitch — JWT и OAuth 2.0.

Аутентификация (JWT):

  1. Клиент отправляет запрос Auth via Social Network на сервер Авторизации Иксолла.
  2. Сервер Авторизации Иксолла отправляет запрос на аутентификацию в PlayFab.
  3. Информация о пользователе записывается в базу данных Иксоллы.
  4. Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
    • Значение PlayFabId из ответа на запрос в PlayFab записывается в поле external_account_id.
    • Значение SessionTicket из ответа на запрос в PlayFab записывается в поле session_ticket.
  5. Пользователь перенаправляется на login_url с query-параметром token. В параметр token записывается JWT пользователя.

Аутентификация (OAuth 2.0):

  1. Клиент отправляет запрос Auth via Social Network с параметром redirect_uri на сервер Авторизации Иксолла.
  2. Сервер Авторизации Иксолла отправляет запрос на аутентификацию в PlayFab.
  3. Информация о пользователе записывается в базу данных Иксоллы.
  4. Сервер Авторизации Иксолла отправляет запрос на изменение данных в PlayFab.
  5. Пользователь перенаправляется на redirect_uri с query-параметром code.
  6. Клиент отправляет запрос Generate JWT на сервер Авторизации Иксолла для обмена полученного параметра code на JWT пользователя.
  7. Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
    • Значение PlayFabId из ответа на запрос в PlayFab записывается в поле external_account_id.
    • Значение SessionTicket из ответа на запрос в PlayFab записывается в поле session_ticket, если в запрос на аутентификацию в Twitch был передан scope=playfab.

Info: Если в базе данных PlayFab запись о пользователе привязана к аккаунту Twitch, в базе данных Иксоллы данная запись считается одним аккаунтом.

Сброс пароля пользователя

Сценарий сброса пароля пользователя:

  1. Клиент отправляет запрос Reset Password на сервер Авторизации Иксолла.
  2. Сервер Авторизации Иксолла отправляет запрос на сброс пароля в PlayFab.
  3. Обновленный пароль записывается в базу данных PlayFab.

Блокировка пользователя

Вы можете заблокировать пользователя через Личный кабинет > ваш вариант авторизации > Пользователи. Заблокированный пользователь не сможет пройти аутентификацию. При этом запись о блокировке сохранится только в базе данных Иксоллы.

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

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

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

Чтобы подключить хранилище Playfab:

  1. Перейдите в Личный кабинет > ваш вариант авторизации > Общие настройки.
  2. В блоке Хранилище данных пользователей выберите PlayFab.
  3. Введите Title ID из личного кабинета PlayFab.

Info: Вы можете использовать методы PlayFab для отправки дополнительных писем пользователям.

Чтобы настроить Twitch в Playfab:

  1. Зарегистрируйте аккаунт Twitch и получите Twitch Client ID.
  2. Вернитесь в настройки вашего варианта авторизации > Социальные сети.
  3. Подключите Twitch.tv, указав Twitch Client ID в поле Application ID.
  4. Настройте Twitch в личном кабинете PlayFab как описано в инструкции.
  5. Если вы интегрировали продукт Авторизация через методы API:
    1. Получите ссылку для аутентификации через Twitch. Для этого используйте метод аутентификации через социальные сети (JWT или OAuth 2.0).
    2. Разместите полученную ссылку в вашем интерфейсе.