JavaScript SDK release notes
Версия | Описание изменений | Дата |
---|---|---|
1.2.0 |
| 16.04.2024 |
Переход на актуальную версию 1.2.0
Новое в версии 1.2.0
Основные изменения:
- Устранение ошибок: При медленном интернете могла не отображаться кнопка
- Поддержка Storage Access API: Добавлена возможность включать запрос на использование внешних кук
- Добавлена поддержка sbol2web: Обработка параметров sberIDRedirect и token, для сценария бесшовного входа
Новое в версии 1.0.0
Новая версия предлагает возможность подкачки новых изменений и фиксов в режиме онлайн, что значительно экономит время на обновления SDK.
Основные изменения:
- Автообновление SDK: Теперь пользователи могут получать обновления автоматически, что упрощает процесс поддержания актуальности SDK.
- Персональный баннер: Новый функционал позволяет добавлять персонализированные баннеры, которые могут повысить вовлеченность пользователей и мотивировать их на вход в приложение.
NPM пакетом
Старая версия SDK, поставляемая файлом тут описание старой версии SDK
Версия | Описание изменений | Файл | Дата |
---|---|---|---|
3.6.1 |
| js-sdk-v3.6.1.tgz | 16.04.2024 |
Переход на актуальную версию 3.6.1
Что нового в версии SDK 3.6.1 и на что обратить внимание - рассказываем ниже!
Обновление настроек ClickStream, для поддержание работы отправки аналитических событий. Для поддержки ничего не нужно делать.
Новое в версии 3.6.0
В баннере добавлено отображение оферты, с возможностью дополнения текста оферты
Для дополнения текста оферты добавлен параметр textOfferExtension в разделе notification, для добавления ссылки используется формат markdown в [] указывается текст ссылки, а () указывается ссылка.
Если суммарная длинна соглашения, неизменная часть "Продолжая использовать Сбер ID, я принимаю условия оферты" + дополнительная часть textOfferExtension больше 140 символов, то текст оферты отображается над кнопкой
Примеры конфигурации баннера
new SberidSDK({
...params,
notification: {
enable: true,
serviceName: "",
autoClose: false,
autoCloseDelay: 90,
theme: NotificationTheme.white,
textType: NotificationTextType.default,
textOfferExtension: ", дополнительное соглашение [ссылка](https://partner.ru/oferta.pdf)"
}
}
Новое в версии 3.5.0
1. Персонализированный баннер
Обновили дизайн персонализированного баннера
Добавили новый функционал для баннера
Параметр | Тип | Описание |
---|---|---|
enable | Boolen | включение персонализированного баннера. Если включен, то баннер показывается сразу после инициализации SDK |
onNotificationBannerClose | Function | функция обратного вызова при закрытие баннера |
onNotificationBannerOpen | Function | функция обратного вызова при открытие баннера |
position? | NotificationPosition | расположение баннера на экране, только для десктоп версии, возможные значения top-right , bottom-right , top-left , bottom-left , значение по умолчанию bottom-right |
theme? | NotificationTheme | тема баннера, возможные значения white , dark , значение по умолчанию white |
serviceName? | string | позволяет указать название сервиса для входа, только для персонализированного баннера, длинна не должна превышать 15 символов, иначе будет использоваться значение по умолчанию 'сервис' |
position | String | расположение баннера (возможноные значения left, right) |
autoCloseDelay | Number | задержка до скрытия баннера в мобильной версии браузера в секундах |
autoClose | Boolen | включение скрытия баннера в мобильной версии |
textType? | NotificationTextType | позволяет выбрать вариант текста на баннере, возможные значения default и loyalty , значение по умолчанию default |
Параметр animation
был удален
- Пример конфигурации
- Управление баннером
new SberidSDK({
...params,
notification: {
enable: true,
serviceName: "",
autoClose: false,
autoCloseDelay: 90,
theme: NotificationTheme.white,
textType: NotificationTextType.default
}
})
const sdk = new SberidSDK(params);
sdk.notification.hide(); // скрыть баннер
sdk.notification.show(); // отобразить баннер
sdk.notification.setPosition(NotificationPosition.topLeft); // установить позицию баннера
sdk.notification.getPosition(); // получить текущее расположение баннера
sdk.notification.switchTheme(); // переключить тему
sdk.notification.setTheme(NotificationTheme); // установить тему
sdk.notification.getTheme(); // получить текущую тему баннера
Новое в версии 3.2.0
Что нового в версии SDK 3.2.0 и на что обратить внимание - рассказываем ниже!
1. Персонализированная кнопка
Добавили функцию обратного вызова onPersonalizationStatus
для персонализированной кнопки входа по Сбер ID.
Параметр personalization говорит о статусе операции, если true, то кнопка успешно персонализирована, иначе нет
const params = {
oidc: oidcParams,
container: '.preview',
// другие параметры
personalization: true,
onPersonalizationStatus: (personalization) => {
if (personalization) {
console.log('Отобразилась перс. кнопка');
} else {
console.log('Отобразилась обычная кнопка');
}
},
// другие параметры
};
2. Быстрый и авто вход
Добавили функции обратного вызова при не успехе выполнения автоматического и быстрого входа
onErrorAutoMode функиция добавляется только при использовании авто входа mode: 'auto'
const params = {
oidc: oidcParams,
container: '.preview',
// другие параметры
fastLogin: {
enable: true,
timeout: 1000,
mode: 'auto',
onErrorAutoMode: () => {
console.log(`Не удалось выполнить авто вход`);
},
},
// другие параметры
};
onErrorDefaultMode функиция добавляется только при использовании быстрого входа mode: 'default'
const params = {
oidc: oidcParams,
container: '.preview',
// другие параметры
fastLogin: {
enable: true,
timeout: 1000,
mode: 'default',
onErrorDefaultMode: () => {
console.log(`Не удалось выполнить быстрый вход вход`);
if ('продолжаем вход через SDK ') {
// В зависимости от настроек откроется OIDC страница или модальное окно
return true;
} else {
// SDK прерывает вход, пользователь остается на странице партнера
return false;
}
},
},
// другие параметры
};
Важно!
При использовании быстрого входа в функции onErrorDefaultMode
обязательно нужно вернуть true
или false
3. Ссылка для входа по Сбер ID
SberidSDK.getUrl() - статичный метод класса SberidSDK позволяет получить ссылку для входа по Сбер ID, метод возвращает Promise
c объектом {link, deeplink}
const { link, deeplink } = await SberidSDK.getUrl(baseUrl, currentOIDC);
4. Отправка аналитики о неудачном входе в метрики Сбер ID
В случае ошибки входа по Сбер ID C помощью функии sendErrorAuth
следует отправить отчет об ошибке.
Рекомендуемое значение для передачи: тип ошибки и мета информация в формате строки.
const params = {
oidc: currentOIDC,
container: '.button',
personalization: true,
display: 'page',
};
const sdk = new SberidSDK(params);
sdk.sendErrorAuth('Не удалось сметчить учетные записи пользователя');
Новое в версии 3.1.3
Что нового в версии SDK 3.1.3 и на что обратить внимание - рассказываем ниже!
1. Аналитика
Отправка событий метрики в Sberbank Analytics включена по умолчанию, реализацию передачи аналитических данных по разделу Отправка аналитических событий можно убрать.
Если по какой-то причине вы не хотите использовать Sberbank Analytics, то можно отключить автоматическу передачу.
Для этого при создании экземпляра SberidSDK необходимо инициализировать объект sa
по примеру ниже
const sa = {
enable: false,
};
const params = {
oidc: oidcParams,
container: '.preview',
// другие параметры
sa: sa,
// другие параметры
};
2. Использование персонализированной кнопки
Для использования персонализированной кнопки входа при создании экземпляра SberidSDK более не нужно передавать парметр personalization
с флагом true
.
Данный флаг проставляется автоматически
Если вам требуется кнопка входа без персонализации, то при создании экземпляра SberidSDK проставьте флаг false
у параметра personalization
const params = {
oidc: oidcParams,
container: '.preview',
// другие параметры
personalization: false,
// другие параметры
};
Важно!
При отключении персональной кнопки, функциональность быстрого входа отключится
3. Смена пользователя на персонализированной кнопке
Чтобы на персонализированной кнопке реализовать возможность смены пользователя, необходимо при создании экземпляра SberidSDK добавить параметр changeUser
по примеру нижне
const params = {
oidc: oidcParams,
container: '.preview',
// другие параметры
changeUser: true,
// другие параметры
};
4. Подготовка к миграции в Cloud
При обновлении версии SDK до 3.1.0 всем партнерам рекомендуется при создании экземпляра SberidSDK использовать конфигурацию подключения к Cloud по примеру ниже
const params = {
oidc: oidcParams,
container: '.preview',
// Другие параметры
cloud: {
enable: false,
},
// Другие параметры
};
При двухсторонней готовности партнера и Сбер ID для перехода потребуется в параметр cloud.enable
передать флаг true
.
Подробнее в новом разделе инициалиации JS SDK Переход на Cloud
При реализации автоподогрева Cookies файлов в параметр params необходимо продублировать настройки cloud.
Пример
const params = {
oidc: oidcParams,
cloud: {
enable: true
}
autoUpdateCookie: true,
};
5. Проверка наличия сертификата Минцифры
Добавили банер с инструкцией в случае перехода на сертификаты Минцифры, подробнее в новом разделе Проверка наличия сертификата Минцифры
6. Подтверждение номера телефона по СМС без ввода номера телефона
Если у вас есть номер телефона пользователя и есть необходимость авторизовать его по Сбер ID, то можно миновать шаг ввода номера и сразу перейти к подтверждению номера телефона по СМС.
Для реализации необходимо при формировании OIDS параметра передать переметр login_hint
по примеру ниже:
const params = {
oidc: { ...oidcParams, login_hint: '79012345678' },
container: '.preview',
// Другие параметры
};
new SberidSDK(params);
Рекомендуемая конфигурация
На этом список фич заканчивается и ниже демонстрируем рекомендуемую конфигурацию с учетом требуемых доработок
В прелогин зоне
const oidcParams = {
response_type: 'code',
client_type: 'PRIVATE',
client_id: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
redirect_uri: 'https://example.com/oidc/success',
state: 'ut8Ar4MUZEMDPIiD2ko914y37s0Q0VKJgxeCkU0yzTY',
scope: 'openid name',
nonce: 'NfZscgwxPY7v0kYvuPfnFHA57bqHxQc3lV51Oiaxlo4',
};
// Рекомендуется создать конфигурируемую переменную, включения и выключения функционала проверки
// сертифика Минцифры, на случай перехода на данный тип сертификата иметь возможность оперативно
// переключить значение на true без выпуска нового релиза приложения
const enabledCheckMintsifry = false;
const onSuccessCallback = (result) => {
console.log('Вы успешно вошли: ', result);
};
const onErrorCallback = (result) => {
console.log('Что-то пошло не так: ', result);
};
const params = {
oidc: oidcParams,
container: '.preview',
display: 'popup',
// добавит на персонализированную кнопку возможность сменить пользователя
changeUser: true,
// добавит возможность входить через банер в нижней части экрана
notification: {
enable: true,
onNotificationBannerClose: () => {
console.log('Баннер закрыт');
},
onNotificationBannerOpen: () => {
console.log('Баннер открыт');
},
animation: true,
position: 'right',
},
// добавит возможность осуществлять вход без перехда на форму OIDC
fastLogin: {
enable: true,
timeout: 1000,
mode: 'default',
},
buttonProps: {
type: 'default',
custom: {
anonymous: 'Вход',
personal: 'Вход как {{userName}}',
},
},
mintsifry: {
enable: enabledCheckMintsifry
},
// Если вы переходите на использование Cloud Сбер ID, то в enable нужно передать true
cloud: {
enable: false,
},
onSuccessCallback,
onErrorCallback,
};
var sbSDK = new SberidSDK(params);
В постлогинной зоне
const onUpdateCookie = () => {
console.log('Автоподогрев выполнен.');
};
const params = {
oidc: oidcParams,
onUpdateCookie,
autoUpdateCookie: true,
};
new SberidSDK(params);
Функционал автоподогрева куки необходимо вызывать в авторизованной зоне сайта, создав для этого отдельный экземпляр SDK