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