ym88659208ym87991671
JavaScript SDK release notes | Документация для разработчиков

JavaScript SDK release notes

Обновлено 12 сентября 2024
ВерсияОписание измененийДата
1.2.0
  • Поддержка Storage Access AP
  • Поддержка sbol2web
  • Устранение ошибок
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
  • Обновление настроек ClickStream
js-sdk-v3.6.1.tgz16.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. Персонализированный баннер

Обновили дизайн персонализированного баннера

Пример обновленного дизайна перс баннера

Добавили новый функционал для баннера

ПараметрТипОписание
enableBoolenвключение персонализированного баннера. Если включен, то баннер показывается сразу после инициализации SDK
onNotificationBannerCloseFunctionфункция обратного вызова при закрытие баннера
onNotificationBannerOpenFunctionфункция обратного вызова при открытие баннера
position?NotificationPositionрасположение баннера на экране, только для десктоп версии, возможные значения top-right, bottom-right, top-left, bottom-left, значение по умолчанию bottom-right
theme?NotificationThemeтема баннера, возможные значения white, dark, значение по умолчанию white
serviceName?stringпозволяет указать название сервиса для входа, только для персонализированного баннера, длинна не должна превышать 15 символов, иначе будет использоваться значение по умолчанию 'сервис'
positionStringрасположение баннера (возможноные значения left, right)
autoCloseDelayNumberзадержка до скрытия баннера в мобильной версии браузера в секундах
autoCloseBoolenвключение скрытия баннера в мобильной версии
textType?NotificationTextTypeпозволяет выбрать вариант текста на баннере, возможные значения default и loyalty, значение по умолчанию default

Параметр animation был удален

new SberidSDK({
...params,
notification: {
enable: true,
serviceName: "",
autoClose: false,
autoCloseDelay: 90,
theme: NotificationTheme.white,
textType: NotificationTextType.default
}
})

Новое в версии 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

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.