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

Инициализация SDK

Обновлено 12 марта 2024

После загрузки страницы для инициализации приложения необходимо создать новый экземпляр SberidSDK.

Параметры для инициализации OIDC

Одиним из основых параметров при создании экземпляра SberidSDK является oidc параметры

ПараметрТипОписание
client_idStringидентификатор системы Партнера, выданный Партнеру при регистрации его системы в Банке (получено в письме от банка с адреса «support@ecom.sberbank.ru» с темой «Сбербанк Профиль»)
scopeStringнаименование групп данных, на которые подписана система Партнера (выдается при регистрации системы в Банке). Значение openid является обязательным и располагается на первой позиции. Разделитель – пробел. Полный перечень параметров доступен в разделе Перечень допустимых параметров Scope
redirect_uriStringадрес страницы Партнера, на которую будет перенаправлен клиент после успешной аутентификации в системе Банка. Временное ограничение: недопустимы символы “;” и “=“
stateStringзначение, включенное в запрос, которое также возвращается в ответе. Может быть строка любого контента. Для предотвращения подделки межсайтовых запросов используется генерируемое случайным образом уникальное значение. Максимальная длина строки 96 символов
nonceStringесли этот параметр сохранился на бэке sdk, то Партнер этот параметр не передает, параметр берется с бэка sdk
login_hintStringФункционал позволяющий передавать номер телефона пользователя для сокращения шага ввода номера телефона и сразу перехода на экран подтверждения входа по смс
anyParamStringдополнительный пользовательский GET параметр в запросе
anyParamStringдополнительный пользовательский GET параметр в запросе

Если требуется добавить дополнительные 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);

Пример подключения к тестовому контуру

const baseUrl = 'https://id-psi.sber.ru';

const params = {
oidc: oidcParams,
container: '.preview',
// Другие параметры
cloud: {
enable: true,
baseUrl: baseUrl,
},
// Другие параметры
};

Примечание: функции обратного вызова onSuccessCallback и onErrorCallback будут вызваны после успешной авторизации если страница Сбер ID была открыта в модальном окне

Примечание: Если данные запрашиваются асинхронно с сервера, то после получения ответа от сервера обновить параметры можно вызвав метод setOIDCParams(oidc)

const sbSDK = new SberidSDK({
container: 'preview',
display: 'popup',
});

fetch('/params')
.then((response) => response.json())
.then((params) => {
sbSDK.setOIDCParams(params);
});

Переход на Cloud

Если вы перешли на использование Cloud Сбер ID (id.sber.ru), то вам необходимо обновить конфигурацию SDK, для этого необходимо добавить в конфиг блок cloud и указать параметр enable: true

Пример конфигурации

const params = {
oidc: oidcParams,
container: '.preview',
// Другие параметры
cloud: {
enable: true,
},
// Другие параметры
};

new SberidSDK(params);

Проверка наличия сертификата Минцифры

В случае перехода Сбер ID на сертификаты Минцифры, есть возможность включить функционал проверки у клиента сертификатов Минцифры. Данный функционал проверяет наличие сертификата и в случае успеха отправляет на страницу входа по Сбер ID, иначе отображается модальное окно с предложением перейти в другой браузер(Яндекс браузер или Атом, в зависимости от ОС)

const sbSDK = new SberidSDK({
container: 'preview',
oidc: oidcParams,
// другие параметры
mintsifry: {
enable: true,
},
// другие параметры
});

Описание параметров

Параметр (Тип)Описание
enable (boolean)включить проверку сертификатов, по умолчанию выключено
showBanner? (boolean)true показывать банер пользователю с предложением перейти в другой браузер, false отправлять пользователя на страницу с инструкцией, по умолчанию true
landing? (string)URL разводящей страницы с инструкцией, если у пользователя нет сертификатов Минцифры
checker? (string)URL адрес страницы работающий на сертификете Минцифры, используется для проверки наличия сертификата у пользователя

Рекомендуется добавить новый раздел настроек mintsifry в котором указать значение параметра enable через конфигурируемую переменную, со значением по умолчанию false, включения и выключения функционала проверки сертификата Минцифры, на случай перехода на данный тип сертификата иметь возможность оперативно переключить значение на true без выпуска нового релиза приложения

Перечень допустимых параметров Scope

Для получения данных пользователя необходимо на этапе инициализации OIDC параметра передать перечень необходимых данных в параметре scope. Ниже в таблице представлен список всех доступных scope для Сбер ID:

ScopeНаименование параметра в ответеОписаниеПример ответа
namefamily_name, given_name, middle_nameФамилия, Имя, Отчество

"family_name":"Фамилия"

"given_name":"Имя"

"middle_name":"Отчество"

birthdatebirthdateДата рождения (формат ГГГГ-ММ-ДД) "birthdate":"0000-00-00"
maindocidentificationПолные данные паспорта:

"identification":{

"series":"00 00",

"number":"000000",

"issued_by":"Орган выдавший документ",

"issued_date":"0000-00-00",

"code":"000-000"

}

inninnИНН номер

"inn":{

"number":"0000000"

}

snilssnilsСНИЛС номер

"snils":{

"number":"0000000"

}

mobilephone_numberНомер телефона"phone_number":"+7 (000) 000000”
emailemailАдрес электронной почты"email":“personal@mail.ru
gendergenderПол: 1 – мужчина; 2 – женщина;"gender":1,
driving_licensedriving_licenseНомер водительского удостоверения

"driving_license":{

"number":"111111"

}

international_passportinternational_passportЗаграничный паспорт гражданина РФ:

"international_passport":{

"series":"777",

"number":"333",

"issued_by":"рога и копыта",

"issued_date":"1981-01-01",

"planned_end_date":"1999-02-01",

"name":"name",

"surname":"surname"

}

priority_docpriority_docДанные документа, удостоверяющего личность:

"priority_doc":{

"type":17,

"series":"777",

"number":"333",

"issued_by":"рога и копыта",

"issued_date":"1981-01-01",

"code":"adasd"

}

citizenshipcitizenshipГражданство:

"citizenship":{

"country_code":"countryCode",

"country_name":"countryName"

}

place_of_birthplace_of_birthМесто рождения"place_of_birth":”Nsk”
address_regaddress_regАдрес регистрации

"address_reg":{

"full_address":"fullAddress",

"fias_code":"fiasCode",

"post_index":"postIndex",

"country":"country",

"region":"region",

"district":"district",

"city":"city",

"settlement":"settlement",

"street":"street",

"house":"house",

"building":"building",

"bulk":"bulk",

"apartment":"apartment"

}

work_addresswork_addressРабочий адрес

"work_address":{

"full_address":"fullAddress",

"fias_code":"fiasCode",

"post_index":"postIndex",

"country":"country",

"region":"region",

"district":"district",

"city":"city",

"settlement":"settlement",

"street":"street",

"house":"house",

"building":"building",

"bulk":"bulk",

"apartment":"apartment"

}

address_of_actual_residenceaddress_of_actual_residenceАдрес места жительства/доставки

"address_of_actual_residence":{

"full_address":"fullAddress",

"fias_code":"fiasCode",

"post_index":"postIndex",

"country":"country",

"region":"region",

"district":"district",

"city":"city",

"settlement":"settlement",

"street":"street",

"house":"house",

"building":"building",

"bulk":"bulk",

"apartment":"apartment"

}

delivery_addressdelivery_addressАдрес для доставки

"delivery_address":{

"full_address":"fullAddress",

"fias_code":"fiasCode",

"post_index":"postIndex",

"country":"country",

"region":"region",

"district":"district",

"city":"city",

"settlement":"settlement",

"street":"street",

"house":"house",

"building":"building",

"bulk":"bulk",

"apartment":"apartment"

}

is_company_employeeis_company_employee Признак сотрудника ПАО "Сбербанк""is_company_employee":true,
stsstsНомер СТС

"sts":{

"number":"00 00 00000"

}

is_self_employedis_self_employedПризнак самозанятого"is_self_employed":true
previous_maindocprevious_identificationРеквизиты ранее выданного паспорта гражданина РФ:

"previous_identification":{

"series":"00 00",

"number":"000 000",

"issued_by":"Орган выдавший документ",

"issued_date":"0000-00-00"

}

previous_nameprevious_family_name,previous_given_name,previous_middle_nameПредыдущая фамилия, имя, отчество

"previous_family_name":"Фамилия"

"previous_given_name":"Имя"

"previous_middle_name":"Отчество"

educationeducationСведения об образовании:

"education":{

"code":"1",

"description":"начальное"

}

place_of_workplace_of_workНаименование организации(место работы)"place_of_work": "место работы",
job_titlejob_titleНаименование должности"job_title": "должность"
marital_statusmarital_statusСемейное положение:

"marital_status":{

"code":"1",

"description":"холост"

}

propositionpropositionСведения для формирования рекламных предложений (признак VIP-клиента)"proposition": true
salary_statussalary_statusПризнак зарплатного клиента"salary_status": true
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.