0.2.0 • Published 4 years ago
@ubic/oauth-client-service v0.2.0
OAuth Client Service
Сервис для создания OAuth авторизации на стороне клиента в браузере.
Пакет полагается на наличие
windowи может не работать в окружениях, отличных от браузеров
Использование и установка
yarn add @ubic/oauth-client-serviceimport 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из дочернего окна.