Login / Хранилище Firebase
  На главную

Login

Хранилище Firebase

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

Примечание
Вы можете использовать расширение Firebase для отправки рассылок пользователям, например, об акциях или обновлениях.

Сценарий взаимодействия

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

  1. Клиент отправляет запросы на сервер Xsolla Login. Формат запросов описан в группах методов JWT, OAuth 2.0 и Password.
  2. Сервер Xsolla Login отправляет запросы в Firebase.
  3. Сервер Xsolla Login обрабатывает ответ от Firebase и возвращает результат клиенту.
  4. Клиент обрабатывает ответ.

Примечание
Вся информация о пользователях, кроме паролей, хранится на стороне Xsolla.

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

  1. Клиент отправляет запрос Register new user на сервер Xsolla Login.
  2. Сервер Xsolla Login отправляет запрос на регистрацию в Firebase.
  3. Информация о пользователе записывается в базу данных Xsolla.
  4. Проверяется статус email-адреса пользователя:
    • Если пользователь ранее не подтверждал свой email-адрес в Firebase, ему приходит письмо для подтверждения от этой системы. Как только пользователь подтверждает свой email-адрес, он автоматически подтверждается и на сервере Xsolla Login.
    • Если email-адрес пользователя подтвержден в Firebase, сразу после регистрации пользователь будет авторизован и перенаправлен по ссылке Callback URL, указанной при создании варианта авторизации.

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

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

Примечание
  • Если в базе данных Xsolla нет записи о пользователе, такая запись создается.
  • Сервер Xsolla Login запрашивает из Firebase следующие данные пользователя и обновляет их в базе данных Xsolla: статус подтверждения email-адреса, аватар и отображаемое имя (если имеются).

Сценарий аутентификации по стандарту JWT

  1. Клиент отправляет запрос Auth by username and password на сервер Xsolla Login.
  2. Сервер Xsolla Login отправляет запрос на аутентификацию в Firebase.
  3. Сервер Xsolla Login генерирует JWT пользователя. При этом:
    • Значение localId из ответа на запрос в Firebase передается в параметр external_account_id.
    • Значение Firebase ID token из ответа на запрос в Firebase передается в параметр firebase_id_token.
    • Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр firebase_refresh_token.
  4. Пользователь перенаправляется на login_url с query-параметром token. В параметр token записывается JWT пользователя.

Сценарий аутентификации по протоколу OAuth 2.0

  1. Клиент отправляет запрос Auth by username and password с параметром redirect_uri на сервер Xsolla Login.
  2. Сервер Xsolla Login отправляет запрос на аутентификацию в Firebase.
  3. Сервер Xsolla Login возвращает login_url вместе с code в query-параметре и переданным redirect_uri.
  4. Пользователь перенаправляется на redirect_uri с query-параметром code.
  5. Клиент отправляет запрос Generate JWT на сервер Xsolla Login для обмена полученного code на JWT пользователя.
  6. Сервер Xsolla Login генерирует JWT пользователя. При этом:
    • Значение localId из ответа на запрос в Firebase передается в параметр external_account_id.
    • Значение Firebase ID token из ответа на запрос в Firebase передается в параметр firebase_id_token.
    • Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр firebase_refresh_token.

Аутентификация через социальные сети

Поддерживается аутентификация только через Google и Facebook. Доступны два сценария аутентификации: по стандарту JWT и протоколу OAuth 2.0.

Сценарий аутентификации по стандарту JWT

  1. Пользователь инициирует авторизацию по кнопке виджета или через метод Login API.
  2. Пользователь перенаправляется на страницу входа социальной сети, где он вводит свои учетные данные.
  3. Социальная сеть возвращает серверу Xsolla Login информацию о пользователе и его токен доступа.
  4. С этим токеном сервер Xsolla Login отправляет запрос на аутентификацию в Firebase через метод Sign in with OAuth credential.
  5. Сервер Xsolla Login генерирует JWT пользователя. При этом:
    • Значение localId из ответа на запрос в Firebase передается в параметр external_account_id.
    • Значение Firebase ID token из ответа на запрос в Firebase передается в параметр firebase_id_token.
    • Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр firebase_refresh_token.
  6. Пользователь перенаправляется на login_url с query-параметром token. В параметр token записывается JWT пользователя.

Сценарий аутентификации по протоколу OAuth 2.0

  1. Пользователь инициирует авторизацию по кнопке виджета или через метод Login API.
  2. Пользователь перенаправляется на страницу входа социальной сети, где он вводит свои учетные данные.
  3. Социальная сеть возвращает серверу Xsolla Login информацию о пользователе и его токен доступа.
  4. С этим токеном сервер Xsolla Login отправляет запрос на аутентификацию в Firebase через метод Sign in with OAuth credential.
  5. Сервер Xsolla Login возвращает login_url вместе с code в query-параметре и переданным redirect_uri.
  6. Пользователь перенаправляется на redirect_uri с query-параметром code.
  7. Клиент отправляет запрос Generate JWT на сервер Xsolla Login для обмена полученного code на JWT пользователя.
  8. Сервер Xsolla Login генерирует JWT пользователя. При этом:
    • Значение localId из ответа на запрос в Firebase передается в параметр external_account_id.
    • Значение Firebase ID token из ответа на запрос в Firebase передается в параметр firebase_id_token.
    • Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр firebase_refresh_token.

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

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

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.

Продолжить чтение

Последнее обновление: 30 августа 2024

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

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