Как настроить PlayFab
Как это работает
Для хранения пользовательских данных вы можете использовать хранилище PlayFab. В базе данных PlayFab хранится следующая информация:
- имя пользователя;
- email-адрес пользователя;
- пароль пользователя;
- поля с расширенной формы регистрации, если она настроена.
При использования хранилища PlayFab вам доступны:
- Регистрация пользователей
- Аутентификация по email-адресу пользователя и паролю
- Аутентификация через социальную сеть Twitch
- Сброс пароля пользователя
- Блокировка пользователей
В качестве клиента вы можете использовать виджет авторизации или ваше приложение. Сценарий взаимодействия клиента и сервера Авторизации Иксолла:
- Клиент отправляет запросы на сервер Авторизации Иксолла. Формат запросов описан в группах методов JWT, OAuth 2.0 и General.
- Сервер Авторизации Иксолла отправляет запросы в PlayFab.
- Сервер Авторизации Иксолла обрабатывает ответ от PlayFab и возвращает результат клиенту.
- Клиент обрабатывает ответ.
Регистрация пользователя в PlayFab
Регистрация пользователей выполняется в соответствии со сценарием. Для завершения регистрации вы можете настроить отправку письма для подтверждения аккаунта пользователя.
Сценарий регистрации пользователя
- Клиент отправляет запрос
Register a new user на сервер Авторизации Иксолла. - Сервер Авторизации Иксолла отправляет запрос на регистрацию.
- Информация о пользователе записывается в базу данных Иксоллы.
- Сервер Авторизации Иксолла отправляет запрос на изменение данных в PlayFab.
- Если вы настроили подтверждение аккаунта:
- При использовании методов API для интеграции продукта, регистрация считается завершенной.
- При использовании виджета авторизации для интеграции продукта, пользователь перенаправляется на страницу с сообщением: Письмо со ссылкой для подтверждения аккаунта отправлено на {email}.
Подтверждение аккаунта пользователя в PlayFab
Чтобы настроить отправку письма для подтверждения аккаунта, выполните шаги:
- Настройте свой проект в PlayFab в соответствии с инструкцией.
- Убедитесь, что шаги Create an email template и Create a rule to send an email when a contact email is updated из раздела Requirements выполнены.
- Обратитесь к аккаунт-менеджеру проекта.
Аутентификация по email-адресу пользователя и паролю
Доступны два типа аутентификации по email-адресу пользователя и паролю — JWT и OAuth 2.0.
Аутентификация (JWT):
- Клиент отправляет запрос Auth by username and password на сервер Авторизации Иксолла.
- Сервер Авторизации Иксолла отправляет запрос на аутентификацию в PlayFab.
- Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
- Значение PlayFabId из ответа на запрос в PlayFab записывается в поле external_account_id.
- Значение SessionTicket из ответа на запрос в PlayFab записывается в поле session_ticket.
- Значения EntityToken из ответа на запрос в PlayFab записываются в поля entity_token, entity_id, entity_type.
- Пользователь перенаправляется на login_url с query-параметром token. В параметр token записывается JWT пользователя.
Аутентификация (OAuth 2.0):
- Клиент отправляет запрос Auth by username and password с параметром redirect_uri на сервер Авторизации Иксолла.
- Сервер Авторизации Иксолла отправляет запрос на аутентификацию в PlayFab.
- Сервер Авторизации Иксолла возвращает login_url вместе с code в query-параметре и переданным redirect_uri.
- Пользователь перенаправляется на redirect_uri с query-параметром code.
- Клиент отправляет запрос Generate JWT на сервер Авторизации Иксолла для обмена полученного code на JWT пользователя.
- Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
- Значение PlayFabId из ответа на запрос в PlayFab записывается в поле external_account_id.
- Значение SessionTicket из ответа на запрос в PlayFab записывается в поле session_ticket, если в запрос Auth by Username and Password был передан scope=playfab.
- Значения EntityToken из ответа на запрос в PlayFab записываются в поля entity_token, entity_id, entity_type.
Если в базе данных Иксоллы нет записи о пользователе:
- Записывается информация о пользователе.
- Сервер Авторизации Иксолла отправляет запрос на изменение данных в PlayFab.
Аутентификация через Twitch
Для аутентификации пользователей через Twitch необходимо настроить социальную сеть в PlayFab. Доступны два типа аутентификации через социальную сеть Twitch — JWT и OAuth 2.0.
Аутентификация (JWT):
- Клиент отправляет запрос Auth via social network на сервер Авторизации Иксолла.
- Сервер Авторизации Иксолла отправляет запрос на аутентификацию в PlayFab.
- Информация о пользователе записывается в базу данных Иксоллы.
- Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
- Значение PlayFabId из ответа на запрос в PlayFab записывается в поле external_account_id.
- Значение SessionTicket из ответа на запрос в PlayFab записывается в поле session_ticket.
- Значения EntityToken из ответа на запрос в PlayFab записываются в поля entity_token, entity_id, entity_type.
- Пользователь перенаправляется на login_url с query-параметром token. В параметр token записывается JWT пользователя.
Аутентификация (OAuth 2.0):
- Клиент отправляет запрос Auth via social network с параметром redirect_uri на сервер Авторизации Иксолла.
- Сервер Авторизации Иксолла отправляет запрос на аутентификацию в PlayFab.
- Информация о пользователе записывается в базу данных Иксоллы.
- Сервер Авторизации Иксолла отправляет запрос на изменение данных в PlayFab.
- Пользователь перенаправляется на redirect_uri с query-параметром code.
- Клиент отправляет запрос Generate JWT на сервер Авторизации Иксолла для обмена полученного параметра code на JWT пользователя.
- Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
- Значение PlayFabId из ответа на запрос в PlayFab записывается в поле external_account_id.
- Значение SessionTicket из ответа на запрос в PlayFab записывается в поле session_ticket, если в запрос на аутентификацию в Twitch был передан scope=playfab.
- Значения EntityToken из ответа на запрос в PlayFab записываются в поля entity_token, entity_id, entity_type.
Сброс пароля пользователя
Сценарий сброса пароля пользователя:
- Клиент отправляет запрос Reset password на сервер Авторизации Иксолла.
- Сервер Авторизации Иксолла отправляет запрос на сброс пароля в PlayFab.
- Обновленный пароль записывается в базу данных PlayFab.
Блокировка пользователя
Вы можете заблокировать пользователя через Личный кабинет > ваш вариант авторизации > Пользователи. Заблокированный пользователь не сможет пройти аутентификацию. При этом запись о блокировке сохранится только в базе данных Иксоллы.
Для кого подходит
Для партнеров, у которых уже подключен продукт Авторизация и есть проект в PlayFab.
Как настроить
Чтобы подключить хранилище Playfab:
- Перейдите в Личный кабинет > ваш вариант авторизации > Общие настройки.
- В блоке Хранилище данных пользователей выберите PlayFab.
- Введите Title ID из личного кабинета PlayFab.
Чтобы настроить Twitch в Playfab:
- Зарегистрируйте аккаунт Twitch и получите Twitch Client ID.
- Вернитесь в настройки вашего варианта авторизации > Социальные сети.
- Подключите Twitch.tv, указав Twitch Client ID в поле Application ID.
- Настройте Twitch в личном кабинете PlayFab как описано в инструкции.
- Если вы интегрировали продукт Авторизация через методы API: