Нативная аутентификация

Если вам доступна авторизация через личный кабинет — используйте наш открытый API для расширения функций пользователя при входе. Ваш сайт откроется как в мобильном приложении

Это — Саша. Она впервые
открыла Луну и ещё не зашла
в свой профиль
1
Открытие web-ресурса партнёра
иконка уведомления
Мобильное устройство
Браузер Луна
Проверка поддержки нативной аутентификации
2
Отображение экрана ввода логин-пароль
3
Ввод данных
4
Аутентификация

POST/oauth2/token
Body: scope, grant_type, login|| cardNumber
Header: Authorization

иконка уведомления
Мобильное устройство
Браузер Луна
4
Аутентификация

POST/oauth2/token
Body: scope, grant_type, login|| cardNumber
Header: Authorization

POST/oauth2/token
Body: scope, grant_type, login|| cardNumber
Header: Authorization
иконка уведомления
Партнёр
Сервер Партнёра
5
Проверка операции аутентификации

Authorization= Basic b64(username password)
scope= openid
grant _type=login_mb||card number mb

иконка уведомления
Партнёр
Сервер Партнёра
5
Проверка операции аутентификации

Authorization= Basic b64(username password)
scope= openid
grant _type=login_mb||card number mb

Authorization= Basic b64(username password)scope= openidgrant _type=login_mb||card number mb
6
Успешно

Status code: 200
Body: access token, refresh token, id token

иконка уведомления
Мобильное устройство
Браузер Луна
6
Успешно

Status code: 200
Body: access token, refresh token, id token

Status code: 200
Body: access token, refresh token, id token
7
Отображение экрана создания кода доступа
8
Ввод кода доступа
9
Шифрование и сохранение

AES256
Шифрование и сохранение refresh_token ключом кодом доступа

иконка уведомления
Мобильное устройство
Браузер Луна
9
Шифрование и сохранение

AES256
Шифрование и сохранение refresh_token ключом кодом доступа

AES256
Шифрование и сохранение refresh_token
ключом кодом доступа
10
Предложение входа по биометрии (Face или Touch-ID)
11
Резолюция клиента
12
Сохранение резолюции
иконка уведомления
Мобильное устройство
Браузер Луна
12
Сохранение резолюции
AES256
Шифрование и сохранение refresh_token
ключом кодом доступа

Для вызова нативной аутентификации необходимо, чтобы ваш сайт был добавлен в категорию "Избранное". При первом запросе на ваш сайт в Браузер Луна должен приходить config.json, формат файла описан ниже:

Структура config.json
{ 
  "auth": {
    "sso": {
      "host": "{{sso_host}}", 
      "path": "/oauth2/token", 
      "method": "POST", 
      "authorization": "{{auth_token}}"
    }, 
    "otp": {
      "host": "{{mobilebanking_host}}",
      "path": "/authentication/getOtp", 
      "method": "POST"
    }
  },
  "view": {
    "title": " ", 
    "agreement": 
"https://www.placeholder.ru/about/agreement/"
  }
}
Скопировать
Скопировано
Значения
a.sso
sso_host -  адрес сервера SSO.
authorization -  HTTP-заголовок Basic аутентификации для запросов к SSO.
auth_token -  токен аутентификации сервис провайдера браузера.

otp
mobilebanking_host - адрес сервера для запроса второго фактора

view
title - заглавие нативного экрана аутентификации Браузера.agreement - ссылка на пользовательское соглашение обработки персональных данных.

Вызов нативной адресной
книги

Это — Саша. Она уже прошла
аутентификацию на сервере
партнёра и хочет перевести
деньги маме
1
Нажатие на поле ввода номера телефона
2
Ваш сайт
Вызов нативной адресной книги

phoneNumberHandler.postMessage(message)

иконка уведомления
Мобильное устройство
Ваш сайт
2
Ваш сайт
Вызов нативной адресной книги

phoneNumberHandler.postMessage(message)

3
Браузер Луна
Получение списка контактов
4
iOS
Проверка резолюции клиента на доступ Sapphire к контактам
5
Браузер Луна
Список контактов
Мобильное устройство
3
Браузер Луна
Получение списка контактов
4
iOS
Проверка резолюции клиента на доступ Sapphire к контактам
5
Браузер Луна
Список контактов
6
Отображение экрана нативной адресной книги

JavaScript API, с собственными функциями браузера

Обмен сообщениями Браузер - WebView

Взаимодействие между браузером и WebView происходит через стандартный метод обмена сообщениями postMessage (message).

Из WebView в Браузер

window.webkit.messageHandlers.postMessage(JSON.stringify(message)), где - название обработчика события, message - JSON, который будет передан в Браузер.

Из WebView в Браузер

webView.evaluateJavaScript(script),  script = "window.postMessage(JSON.stringify(message));"
где script - это JavaScript код, который будет выполнен в контексте web-приложения.

Обработчики событий (хендлеры)
1
phoneNumberHandler
Вызов нативной адресной книги устройства.
Алгоритм:
  1. 1. Браузер обращается к iOS для получения списка контактов устройства.
  2. 2. Браузер отображает нативный экран адресной книги.
  3. 3. Браузер отправляет выбранный в адресной книге номер в web-приложение.
Входящее сообщение. Тело сообщения
TPhone = { 
  number: string,
  name: string,
}

message = {
  'self': TPhone, 
  'recent': TPhone[]
}
Скопировать
Скопировано
Значения
number - Номер телефона контакта
name - Имя контакта
self - Собственный контакт пользователя
recent - Список контактов получателей последних 20 переводов по номеру телефона
Пример
{ 
  "self": { 
    "number": "9038001212", 
    "name": " " 
  },
"recent": [ {
      "number":"9261111111",
      "name":" ." 
    }, 
    { 
      "number":"9131656860", 
      "name":" ."
    } 
  ]
}
Скопировать
Скопировано
Исходящее сообщение
TPhoneResponse = { 
  number: string, 
}

message = {
  'type': 'SAPPHIRE_CONTACTS', 
  'data': TPhoneResponse
}
Скопировать
Скопировано
2
logoutHandler
Уведомление Браузера о разлогинивании пользователя в web‑приложении.
Алгоритм:
  1. 1. Браузер запоминает URL web-приложения.
  2. 2. Браузер закрывает WebView с web-приложением.
  3. 3. Браузер отображает нативный экран аутентификации.
  4. 4. Браузер после успешной аутентификации открывает URL web‑приложения (п.1).
Входящее сообщение. Тело сообщения
Исходящее сообщение отсутствует
3
errorHandler
Уведомление о возникновении ошибки в web‑приложении, связанной с Браузером
Алгоритм:
  1. 1. Браузер запоминает URL web-приложения.
  2. 2. Браузер показывает нативный экран с ошибкой.
  3. 3. Браузер закрывает WebView с web-приложением.
  4. 4. Браузер отображает нативный экран аутентификации.
  5. 5. Браузер после успешной аутентификации открывает URL web‑приложения (п.1).
Входящее сообщение. Тело сообщения
TErrorCode = enum { 
  FINGERPRINT_TIMEOUT_ERROR =
'FINGERPRINT_TIMEOUT_ERROR', 
  AUTH_ERROR = 'AUTH_ERROR'
}

message = { 
  'code': TErrorCode,
}
Скопировать
Скопировано
Значения
AUTH_ERROR - web-приложению не удалось пройти аутентификацию
Исходящее сообщение отсутствует
4
deviceFingerprintHandler
При получении такого типа сообщения от сайта Партнера, Браузер Луна рассчитывает текущий fingerprint мобильного приложения и возвращает его в кодировке base64 в ответе
Входящее сообщение. Тело сообщения
Исходящее сообщение
TFingerprintResponse = { 
  'deviceFingerprint': string 
}

message = {
  'type': string, 
  'data': TFingerprintResponse
}
Скопировать
Скопировано
Пример сообщения
{ 
  "type": "SAPPHIRE_FINGERPRINT",  
  "data": {
    "deviceFingerprint":
"eyJHZW9Mb2NhdGlvbkluZm8iOnsiU3RhdHVzIjoyfSwiUGhvbmVDYWxsRGlyZWN0aW9uIjotMSwiQ29tcHJvbWlzZWQiOjA 
  }
}
Скопировать
Скопировано

Ультракамера

Мы развиваем камеру браузера с целью создать универсальный инструмент работы с QR кодами всех типов — платежными, информационными, кодами для получения доступа к сервисам и т.д.

Команда постоянно работает над расширением списка поддерживаемых QR и подключения сценариев их обработки.

В настоящий момент Камера умеет распознавать:

Платежные QR коды СБП и квитанций — камера предложит выбрать банковское приложение для оплаты из установленных на телефоне, в отдельных случаях сможет переадресовать в Интернет-банк (открывается в браузере)

QR коды для оплаты чаевых или оплаты через другие платежные сервисы

Сбер QR — открываем приложение Сбербанка (если установлено на телефоне пользователя)

Номера телефонов, банковских карт и счетов, в том числе написанные от руки — камера предложит скопировать номер и вставить в приложение вашего банка для быстрого перевода

Информационные QR коды — для быстрого поиска информации в интернете

QR коды от Wi-Fi, или содержащий в себе e-mail, точку на картах, контакт адресной книги

Вы можете использовать возможности нашей камеры в своих интересах — мы можем настроить поддержку вашего сервиса в ультра-камере Луны:

— передавать распознанные данные из QR кода на оплату в ваш сервис

— подставлять номер телефона в ваш сервис по прямой ссылке, чтобы переводы работали в один клик

— настроить распознавание вашего платежного или информационного QR-кода в Луне

— реализовать другие ваши потребности, которые вы можете описать нам на адрес bizdev@loonabrowser.ru.

Реализовать другие ваши потребности, которые вы можете описать нам на адрес bizdev@loonabrowser.ru.

Открытие сайтов в Луне по умолчанию

Если хотите, чтобы ваш ресурс сразу открывался в браузере Луна, вы можете разместить ссылку вида «//loona:» (например loona://ya.ru) на вашем ресурсе.
Скопировать
Скопировано
В этом случае другое приложение предложит пользователю открыть ссылку в Луне (важно — сценарий будет работать, только если у пользователя установлена Луна).
Скопировать
Скопировано

Когда может быть актуально?

— если нужен быстрый переход на определенную страницу вашего сайта, с предзаполнением определенных данных на этой странице

— если с вашего сайта требуется перевод на оплату в определенные разделы приложения банков

— или если у вашего сервиса нет своего мобильного приложения и требуется специальная обработка вашего сценария

Проконсультируем по использованию bizdev@loonabrowser.ru.

Быстрые действия

Браузер поддерживает функционал “быстрых действий” — это виджет на главной странице браузера, в которой вы можете добавить ярлыки (ссылки) для быстрого доступа к разделам вашего сайта или сервиса.

Как это работает:

Ваш сервис с помощью встроенного API браузера передает в Луну определенный набор ссылок к избранным элементам пользователя, мы формируем виджет для доступа к ним в один клик. Это могут быть:
Скопировать
Скопировано

— платежные шаблоны или подписки для финансового сервиса;

— разделы личного кабинета интернет-магазинов, например быстрый доступ к статусу актуальных заказов;

— любые информационные разделы вашего сервиса, и многое другое.

Браузер добавляет ссылки только при условии согласия пользователя. Для реализации виджета вашего сервиса в Луне свяжитесь с нами по адресу bizdev@loonabrowser.ru. Спецификация сервиса приложена для ознакомления и предварительной оценки сложности интеграции.

Возможность подключения данной функции потребует адаптации спецификации Браузера персонально для Партнера.

Спецификация включает следующие
обработчики событий (хендлеры):
1
getShortcutsStatusHandler
Описание: Проверка статуса. При получении такого типа сообщения браузер Луна проверяет и отправляет статус шорткатов на устройстве.
Перечень статусов:
1. "UNDEFINED"
2. "READY2SET"
3. "INSTALLED"
Скопировать
Скопировано
Входящее сообщение
Значения
status - статус установки шорткатов
Исходящее сообщение
message = {
  'type': 'SAPPHIRE_SHORTCUT_STATUS', 
  'data': {
    'status': string, 
    'version': string
  }
}
Скопировать
Скопировано
Значения
version - версия установленных шорткатов (необязательное поле)
Примеры исходящего сообщения браузера Луна
1. Статус "UNDEFINED"

message = {
  'type': 'SAPPHIRE_SHORTCUT_STATUS', 
  'data': {
    'status': 'UNDEFINED' 
  }
}

2. Статус "READY2SET"

message = {
  'type': 'SAPPHIRE_SHORTCUT_STATUS', 
  'data': {
    'status': 'READY2SET' 
  }
}

3. Статус "INSTALLED" 

message = {
  'type': 'SAPPHIRE_SHORTCUT_STATUS', 
  'data': {
    'status': 'INSTALLED', 
    'version': '1'
  }
}
Скопировать
Скопировано
2
updateShortcutsStatusHandler
Описание: Cмена статуса работы с шорткатами.
Входящее сообщение
message = {
  'type': string, 
  'status': string
}

{
  'type': 'SAPPHIRE_SHORTCUT_STATUS', 
  'status': 'READY2SET'
}
Скопировать
Скопировано
Исходящее сообщение отсутствует
3
addShortcutHandler
Добавление блока быстрых действий на главный экран.
Алгоритм:
  1. 1. Браузер добавляет шоркаты Партнера на устройстве
  2. 2. После добавления шорткатов на устройстве обновляется статус установки шорткатов на "INSTALLED" и устанавливается версия шорткатов, указанная в полученном сообщении
Входящее сообщение
{
  'TDefaultShortcuts': {
    'partners': TPartners[], 
    'isEnabled': boolean 
  },
  
  'TPartners': {
    'partnerID': string, 
    'partnerName': string, 
    'partnerHost': string, 
    'partnerShortcuts': TPartnerShortcuts 
  },
  
  'TPartnerShortcuts': {
    'partnerShortcutId': string, 
    'title': string, 
    'typeName': string, 
    'path': string, 
    'icon': string 
  },
  
  'TAvailableShortcuts': {
    'partners': TPartners[] 
  },


  message = {
    'defaultShortcuts':
      'TDefaultShortcuts', 
    'availableShortcuts':
      'TAvailableShortcuts', 
    'version': string 
  }
Скопировать
Скопировано
Исходящее сообщение отсутствует
Значения
defaultShortcuts - модель ленты шорткатов на главной
availableShortcuts - модель шорткатов для настройки
isEnabled - флаг включения шоркатов при установке
version - версия конфигурации шорткатов. Служит для отслеживания обновления версий
partners - модель массива партнеров
partnerID - идентификатор подключенного партнера
partnerName - наименование партнера
partnerHost - строка-хост партнера для подключения
partnerShortcuts - модель массива шорткатов
partnerShortcutId - идентификатор шортката партнера
title - наименование шортката, отображаемое в браузере Луна
typeName - наименование типа шортката
path - конечный путь URL, на который ведет шорткат
icon - иконка шортката в браузере Луна
Исходящее сообщение отсутствует
Пример входящего сообщения браузера Луна
{
  'defaultShortcuts': {
    'partners': [
       {
        'partnerID': '1',
        'partnerName': 'Partner',
        'partnerHost': 'https://ipartner.ru',
        'partnerShortcuts': [
          {
            'partnerShortcutId': '1-1',
            'title': 'Шорткат1',
            'typeName': 'typeName1',
            'path': '/partner/action1',
            'icon': 'ic40Shortcut1'
          },
          {
            ...
          }
        ]
      }
    ],
    'isEnabled': true
  },
  'availableShortcuts': {
    'partners': [
       {
        'partnerID': '1',
        'partnerName': 'Partner',
        'partnerHost': 'https://partner.ru',
        'partnerShortcuts': [
          {
            'partnerShortcutId': '1-1',
            'title': 'Шорткат1',
            'typeName': 'typeName1',
            'path': '/partner/action1',
            'icon': 'ic40Shortcut1'
          },
          {
            ...
          }
        ]
      }
    ],
  },
  'version': '1'
}  
Скопировать
Скопировано

Специальный режим для сайтов

В Браузере предусмотрен функционал открытия сайтов в режиме мобильного приложения — сайт отобразится без браузерной навигации и будет максимально похож на мобильное приложение. Так пользователи получат "нативный" новый опыт использования вашего сайта, за счет увеличения пространства для показа контента на сайте.

Как это работает:

Ваш сайт может использовать расширение браузера, которое позволяет открыть сайт в режиме мобильного приложения. Пользователю будет доступно закрытие сайта и переход к доступным действиям с сайтом:

● обновить страницу
● добавить сайт в избранное
● поделиться сайтом
Скопировать
Скопировано

Для реализации свяжитесь с нами по адресу bizdev@loonabrowser.ru

Безопасность данных
пользователя

Браузер Луна использует современные правила и наработки по обеспечению безопасности пользователя.

Безопасность при веб серфинге

Луна использует многофакторное определение и блокировку контекстной рекламы, браузер блокирует большинство трекеров в Интернете, чтобы наши пользователи могли наслаждаться веб серфингом не задумываясь о последствиях.

Полная конфиденциальность

Мы ценим конфиденциальность наших пользователей и соблюдаем законодательство РФ в части работы с персональными данными клиента, поэтому не храним у себя контакты из адресной книги пользователя. Для отображения контактов используем callback функции.