@ubic/oauth-client-service

0.2.0 • Public • Published

OAuth Client Service

Сервис для создания OAuth авторизации на стороне клиента в браузере.

Пакет полагается на наличие window и может не работать в окружениях, отличных от браузеров

Использование и установка

yarn add @ubic/oauth-client-service
import createOAuthService from '@ubic/oauth-client-service';

const OAuthService = createOAuthService({
  loginURL: '/security/login/',
  logoutURL: '/security/logout/',
  messageIdentity: 'my-app',
});

OAuthService.openLoginPopup({
  callback: window.location.reload,
});

OAuthService.openLogoutPopup();

Конфигурация

Фабрика сервиса принимает на вход следующий объект:

{
  loginURL,
  logoutURL,
  messageIdentity = 'common-oauth',
  popupWindowTarget = '_blank',
  popupWindowFeatures = [],
}
  • loginURL – URL логина, обязательное поле;
  • logoutURL – URL логаута, обязательное поле;
  • messageIdentity – значение data.identity из события message открываемого окна;
  • popupWindowTarget – параметр target для window.open;
  • popupWindowFeatures – объект конфигурации windowFeatures для window.open, пример значения: { top: "500" }.

Методы

OAuthService.listenForLogin(callback)

Добавляет обработчик события message с проверкой источника и типа сообщения.

Ожидаемый тип события:

{
  data: {
    identity: 'common-oauth',
    isLogin: true
  }
}

Где identity должно совпадать с messageIdentity из глобальной конфигурации.

OAuthService.openLoginPopup(config = {})

Открывает всплывающее окно (window.open) и ожидает события вида:

{
  data: {
    identity: 'common-oauth',
    isLogin: true
  }
}

Где identity должно совпадать с messageIdentity из глобальной конфигурации.

Аргументы конфигурации:

  • url – URL окна для открытия, по умолчанию равно loginURL из глобальной конфигурации;
  • target – параметр target для window.open, по умолчанию равно popupWindowTarget из глобальной конфигурации;
  • windowFeatures – объект конфигурации windowFeatures для window.open, пример значения: { top: "500" }.
  • callback – функция, которая будет вызвана после получения события успешного логина, единственный аргумент – оригинальное событие message из дочернего окна.

OAuthService.openLogoutPopup(config = {})

Открывает всплывающее окно (window.open) и ожидает события вида:

{
  data: {
    identity: 'common-oauth',
    isLogout: true
  }
}

Где identity должно совпадать с messageIdentity из глобальной конфигурации.

Аргументы конфигурации:

  • url – URL окна для открытия, по умолчанию равно logoutURL из глобальной конфигурации;
  • target – параметр target для window.open, по умолчанию равно popupWindowTarget из глобальной конфигурации;
  • windowFeatures – объект конфигурации windowFeatures для window.open, пример значения: { top: "500" }.
  • callback – функция, которая будет вызвана после получения события успешного логаута, единственный аргумент – оригинальное событие message из дочернего окна.

Readme

Keywords

none

Package Sidebar

Install

npm i @ubic/oauth-client-service

Weekly Downloads

22

Version

0.2.0

License

MIT

Unpacked Size

27.3 kB

Total Files

6

Last publish

Collaborators

  • olegkireev
  • ubicnpm