Авторизация / Хранилище Firebase
 На главную

Авторизация

  • Руководство по интеграции

  • Хранилище данных пользователей

  • Кастомизация

  • Провайдеры коммуникационных услуг

  • Возможности

  • Инструкции

  • Расширения

  • Справочники

  • Хранилище Firebase

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

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

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

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

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

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

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

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

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

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

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

    1. Клиент отправляет запрос Auth by username and password на сервер Авторизации Иксолла.
    2. Сервер Авторизации Иксолла отправляет запрос на аутентификацию в Firebase.
    3. Сервер Авторизации Иксолла генерирует 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 на сервер Авторизации Иксолла.
    2. Сервер Авторизации Иксолла отправляет запрос на аутентификацию в Firebase.
    3. Сервер Авторизации Иксолла возвращает login_url вместе с code в query-параметре и переданным redirect_uri.
    4. Пользователь перенаправляется на redirect_uri с query-параметром code.
    5. Клиент отправляет запрос Generate JWT на сервер Авторизации Иксолла для обмена полученного code на JWT пользователя.
    6. Сервер Авторизации Иксолла генерирует 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. Социальная сеть возвращает серверу Авторизации Иксолла информацию о пользователе и его токен доступа.
    4. С этим токеном сервер Авторизации Иксолла отправляет запрос на аутентификацию в Firebase через метод Sign in with OAuth credential.
    5. Сервер Авторизации Иксолла генерирует 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. Социальная сеть возвращает серверу Авторизации Иксолла информацию о пользователе и его токен доступа.
    4. С этим токеном сервер Авторизации Иксолла отправляет запрос на аутентификацию в Firebase через метод Sign in with OAuth credential.
    5. Сервер Авторизации Иксолла возвращает login_url вместе с code в query-параметре и переданным redirect_uri.
    6. Пользователь перенаправляется на redirect_uri с query-параметром code.
    7. Клиент отправляет запрос Generate JWT на сервер Авторизации Иксолла для обмена полученного code на JWT пользователя.
    8. Сервер Авторизации Иксолла генерирует JWT пользователя. При этом:
      • Значение localId из ответа на запрос в Firebase передается в параметр external_account_id.
      • Значение Firebase ID token из ответа на запрос в Firebase передается в параметр firebase_id_token.
      • Значение Firebase refresh token из ответа на запрос в Firebase передается в параметр firebase_refresh_token.

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

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

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

    В другой раз

    Спасибо за обратную связь!

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

    Последнее обновление: 22 марта 2022

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

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