@ubic/oauth-client-service
v0.2.0
Published
Сервис для создания OAuth авторизации на стороне клиента в браузере.
Downloads
106
Readme
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
из дочернего окна.