После загрузки страницы для инициализации приложения необходимо создать новый экземпл яр SberidSDK.
Параметры для инициализации OIDC
Одиним из основых параметров при создании экземпляра SberidSDK является oidc
параметры
Параметр | Тип | Описание |
---|---|---|
client_id | String | идентификатор системы Партнера, выданный Партнеру при регистрации его системы в Банке (получено в письме от банка с адреса «support@ecom.sberbank.ru» с темой «Сбербанк Профиль») |
scope | String | наименование групп данных, на которые подписана система Партнера (выдается при регистрации системы в Банке). Значение openid является обязательным и располагается на первой позиции. Разделитель – пробел. Полный перечень параметров доступен в разделе Перечень допустимых параметров Scope |
redirect_uri | String | адрес страницы Партнера, на которую будет перенаправлен клиент после успешной аутентификации в системе Банка. Временное ограничение: недопустимы символы “;” и “=“ |
state | String | значение, включенное в запрос, которое также возвращается в ответе. Может быть строка любого контента. Для предотвращения подделки межсайтовых запросов используется генерируемое случайным образом уникальное значение. Максимальная длина строки 96 символов |
nonce | String | если этот параметр сохранился на бэке sdk, то Партнер этот параметр не передает, параметр берется с бэка sdk |
login_hint | String | Функционал позволяющий передавать номер телефона пользователя для сокращения шага ввода номера телефона и сразу перехода на экран подтверждения входа по смс |
response_type | String | константа, всегда передавать 'code' |
client_type | String | константа, всегда передавать 'PRIVATE' |
Если требуется добавить дополнительные GET параметры в ссылку, то их нужно передать так же блоке oidc
Пример
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',
login_hint: '79012345678',
anyParam: 'param',
};
Подробнее про параметры OIDC можно прочитать здесь
Параметры создания экземпляра SberidSDK
На данной странице представлен пример создания экземпляра SberidSDK с примером объекта params, который не является конечно сконфигурированным. Документация по всем конфигурациям описана в разделе Перечень конфигураций SDK, а обработка результа входа описана в разделе Обработка ответа Входа по Сбер ID.
Функция создания SberidSDK принимает на вход объект params (Object)
для инициализации SDK:
Параметр (Тип) | Описание |
---|---|
oidc (OidcParams ) | см. описание "Параметры для инициализации OIDC", обязательный параметр |
container (string или HTMLDivElement ) | селектор DOM-элемента или HTMLElement в котором будет размещена кнопка Войти по Сбер ID |
display (popup или page ) | режим отображения страницы авторизации по Сбер ID (popup - высплывающе окно, page - в текущем окне) |
mweb2app (boolean ) | включить возможность формирования универсальных ссылок. Подробнее |
personalization (boolean ) | использовать ли персонализированную кнопку |
changeUser (boolean ) | настройки включения функционала смены пользователя |
cloud (enable: true ) | настройка интеграции с Cloud |
notification (NotificationProps ) | настройки персонализированного баннера |
universalLink (UniversalLinkProps ) | параметры для генерации универсальных ссылок |
debug (boolean ) | включает отладочные сообщения в консоле разработчика |
fastLogin (FastloginProps ) | настройки быстрого входа |
utmProxyDisabled (boolean ) | отключить проксирование переданых в url utm_меток в запрос к Сбер ID (Список меток: utm_source utm_medium utm_campaign utm_term utm_content) |
generateState (String ) | включить генерацию и проверку state |
onButtonClick ((e: Event, link?: HTMLElement) => Promise<boolean> ) | функция callback при нажатии на кнопку войти по Сбер ID |
onSuccessCallback (data?: SberidSDKSuccessResult) => void ) | функция обратного вызова при успешной авторизаци |
onErrorCallback (data?: SberidSDKErrorResult) => void ) | функция обратного вызова при возникновении ошибок во время авторизации |
buttonProps (SberidButtonProps ) | настройки для стилизации кнопок, подробнее |
autoUpdateCookie (boolean ) | включить автоподогрев авторизационной куки |
updateCookiePeriod (number ) | период автоподогрева авторизационной куки от 1 до 31 |
onUpdateCookie (() => void ) | функция обратного вызова при успешном автоподогреве авторизационной куки |
logout (() ) | функция создает куку, которая запоминает что пользователь произвел выход, необходимо использовать в связке с авто-входом |
Для работы персонализированной кнопки необходимо направить запрос на support@ecom.sberbank.ru для добавления ваших доменов в список доверенных. В запросе указывается client_id и список доменов, с которых будет выполняться запрос на получение данных для персонализации кнопки. Адрес домена не должен заканчиваться символом "/". Сотрудник банка добавит домен в список разрешенных.
Примечание: Работы персонализированной кнопки не гарантируется в браузере Safari при включенной настройке Конфиденциальность -> Предотвращать перекрестное отслеживание
Пример создания экземпляра SberidSDK
const onSuccessCallback = (result) => {
console.log('Вы успешно вошли: ', result);
};
const onErrorCallback = (result) => {
console.log('Что-то пошло не так: ', result);
};
const params = {
oidc: oidcParams,
container: '.preview',
display: 'popup',
mweb2app: false,
generateState: false,
cloud: {
enable: true,
},
notification: {
enable: false,
onNotificationBannerClose: () => {
console.log('Баннер закрыт');
},
onNotificationBannerOpen: () => {
console.log('Баннер открыт');
},
animation: true,
position: 'right',
},
utmProxyDisabled: false,
buttonProps: {
type: 'default',
custom: {
anonymous: 'Вход',
personal: 'Вход как {{userName}}',
},
},
onSuccessCallback,
onErrorCallback,
};
var sbSDK = new SberidSDK(params);