Хранилище Firebase
При использовании хранилища Firebase вам доступны:
- регистрация пользователей;
- аутентификация по email-адресу пользователя и паролю;
- аутентификация через социальные сети;
- блокировка пользователя.
Сценарий взаимодействия
В качестве клиента вы можете использовать виджет авторизации или ваше приложение. Сценарий взаимодействия клиента и сервера Xsolla Login:
- Клиент отправляет запросы на сервер Xsolla Login. Формат запросов описан в группах методов JWT, OAuth 2.0 и Password.
- Сервер Xsolla Login отправляет запросы в Firebase.
- Сервер Xsolla Login обрабатывает ответ от Firebase и возвращает результат клиенту.
- Клиент обрабатывает ответ.
Сценарий регистрации пользователя
- Клиент отправляет запрос
Register new user на сервер Xsolla Login. - Сервер Xsolla Login отправляет запрос на регистрацию в Firebase.
- Информация о пользователе записывается в базу данных Xsolla.
- Проверяется статус email-адреса пользователя:
- Если пользователь ранее не подтверждал свой email-адрес в Firebase, ему приходит письмо для подтверждения от этой системы. Как только пользователь подтверждает свой email-адрес, он автоматически подтверждается и на сервере Xsolla Login.
- Если email-адрес пользователя подтвержден в Firebase, сразу после регистрации пользователь будет авторизован и перенаправлен по ссылке Callback URL, указанной при создании варианта авторизации.
Аутентификация по email-адресу пользователя и паролю
Доступны два типа аутентификации по email-адресу пользователя и паролю: по стандарту JWT и протоколу OAuth 2.0.
- Если в базе данных Xsolla нет записи о пользователе, такая запись создается.
- Сервер Xsolla Login запрашивает из Firebase следующие данные пользователя и обновляет их в базе данных Xsolla: статус подтверждения email-адреса, аватар и отображаемое имя (если имеются).
Сценарий аутентификации по стандарту JWT
- Клиент отправляет запрос Auth by username and password на сервер Xsolla Login.
- Сервер Xsolla Login отправляет запрос на аутентификацию в Firebase.
- Сервер Xsolla Login генерирует JWT пользователя. При этом:
- Значение localId из ответа на запрос в Firebase передается в параметр
external_account_id
. - Значение Firebase ID token из ответа на запрос в Firebase передается в параметр
firebase_id_token
. - Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр
firebase_refresh_token
.
- Значение localId из ответа на запрос в Firebase передается в параметр
- Пользователь перенаправляется на
login_url
с query-параметромtoken
. В параметрtoken
записывается JWT пользователя.
Сценарий аутентификации по протоколу OAuth 2.0
- Клиент отправляет запрос Auth by username and password с параметром
redirect_uri
на сервер Xsolla Login. - Сервер Xsolla Login отправляет запрос на аутентификацию в Firebase.
- Сервер Xsolla Login возвращает
login_url
вместе сcode
в query-параметре и переданнымredirect_uri
. - Пользователь перенаправляется на
redirect_uri
с query-параметромcode
. - Клиент отправляет запрос Generate JWT на сервер Xsolla Login для обмена полученного
code
на JWT пользователя. - Сервер Xsolla Login генерирует JWT пользователя. При этом:
- Значение localId из ответа на запрос в Firebase передается в параметр
external_account_id
. - Значение Firebase ID token из ответа на запрос в Firebase передается в параметр
firebase_id_token
. - Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр
firebase_refresh_token
.
- Значение localId из ответа на запрос в Firebase передается в параметр
Аутентификация через социальные сети
Поддерживается аутентификация только через Google и Facebook. Доступны два сценария аутентификации: по стандарту JWT и протоколу OAuth 2.0.
Сценарий аутентификации по стандарту JWT
- Пользователь инициирует авторизацию по кнопке виджета или через метод Login API.
- Пользователь перенаправляется на страницу входа социальной сети, где он вводит свои учетные данные.
- Социальная сеть возвращает серверу Xsolla Login информацию о пользователе и его токен доступа.
- С этим токеном сервер Xsolla Login отправляет запрос на аутентификацию в Firebase через метод Sign in with OAuth credential.
- Сервер Xsolla Login генерирует JWT пользователя. При этом:
- Значение localId из ответа на запрос в Firebase передается в параметр
external_account_id
. - Значение Firebase ID token из ответа на запрос в Firebase передается в параметр
firebase_id_token
. - Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр
firebase_refresh_token
.
- Значение localId из ответа на запрос в Firebase передается в параметр
- Пользователь перенаправляется на
login_url
с query-параметромtoken
. В параметрtoken
записывается JWT пользователя.
Сценарий аутентификации по протоколу OAuth 2.0
- Пользователь инициирует авторизацию по кнопке виджета или через метод Login API.
- Пользователь перенаправляется на страницу входа социальной сети, где он вводит свои учетные данные.
- Социальная сеть возвращает серверу Xsolla Login информацию о пользователе и его токен доступа.
- С этим токеном сервер Xsolla Login отправляет запрос на аутентификацию в Firebase через метод Sign in with OAuth credential.
- Сервер Xsolla Login возвращает
login_url
вместе сcode
в query-параметре и переданнымredirect_uri
. - Пользователь перенаправляется на
redirect_uri
с query-параметромcode
. - Клиент отправляет запрос Generate JWT на сервер Xsolla Login для обмена полученного
code
на JWT пользователя. - Сервер Xsolla Login генерирует JWT пользователя. При этом:
- Значение localId из ответа на запрос в Firebase передается в параметр
external_account_id
. - Значение Firebase ID token из ответа на запрос в Firebase передается в параметр
firebase_id_token
. - Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр
firebase_refresh_token
.
- Значение localId из ответа на запрос в Firebase передается в параметр
Блокировка пользователя
Вы можете заблокировать пользователя через Личный кабинет. Заблокированный пользователь не сможет пройти аутентификацию. Запись о блокировке сохранится только на стороне Xsolla.
Продолжить чтение
Полезные ссылки
Как подключить хранилище FirebaseНашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.