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

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

Обновлено 20 ноября 2024

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

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

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

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

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

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Пример
Пакет Light
subНеизменный уникальный идентификатор клиента, передаваемый внешним потребителям.openid (обязательно)"sub":"e327493e-979a-461f-9ca5-edfab9d6fbab"
emailАдрес электронной почтыemail"email":“personal@mail.ru
phone_numberНомер телефонаmobile"phone_number":"+7 (000) 000000”
Пакет Standart
birthdateДата рождения (формат ГГГГ-ММ-ДД)birthdate "birthdate":"0000-00-00"
family_name, given_name, middle_nameФамилия Имя Отчествоname

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

"given_name":"Имя"

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

genderПол: 1 – мужчина; 2 – женщина;gender"gender":1,
Пакет Professional
identificationПолные данные паспорта: серия,номер,орган, выдавший паспорт,дата выдачи паспорта (формат ГГГГ-ММ-ДД),код подразделенияmaindoc

"identification":{

"series":"00 00",

"number":"000000",

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

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

"code":"000-000"

}

innИНН номерinn

"inn":{

"number":"0000000"

}

snilsСНИЛС номерsnils

"snils":{

"number":"0000000"

}

driving_licenseНомер водительского удостоверенияdriving_license

"driving_license":{

"number":"111111"

}

international_passportЗаграничный паспорт гражданина РФ:серия документа (формат 00 00),номер документа(формат 000000),кем выдан, дата выдачи (формат ГГГГ-ММ-ДД),дата окончания (формат ГГГГ-ММ-ДД),имя,фамилияinternational_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_docДанные документа, удостоверяющего личность:тип,серия документа (формат 00 00),номер документа (формат 000000),кем выдан, дата выдачи (формат ГГГГ-ММ-ДД),код. Выводится один документ в соответствии со списком приоритетов:Паспорт РФ, Загранпаспорт гражданина РФ, Военный билет, Паспорт моряка, Временное удостоверение, Паспорт иностранного граданина, Вид на жительство иностранного гражданина.
Доступные типы документов:
  • 17 - Паспортгражданина РФ
  • 18 - Загранпаспортгражданина РФ
  • 7 - Военный билетвоеннослужащего
  • 21 - Удостоверениеличности моряка
  • 14 - Временное удостоверение личности гражданина РФ
  • 10 - Паспорт иностранного гражданина
  • 75 - Вид на жительство в РФ иностранного гражданина
priority_doc

"priority_doc":{

"type":17,

"series":"777",

"number":"333",

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

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

"code":"adasd"

}

citizenshipГражданство: последняя по актуальности страна гражданства (наименование на русском языке) и ее код (ОКСМ, буквенное обозначение – Альфа-3)citizenship

"citizenship":{

"country_code":"countryCode",

"country_name":"countryName"

}

place_of_birthМесто рождения – город рождения клиента (текстовое поле, не кодируется)place_of_birth"place_of_birth":”Nsk”
address_regАдрес регистрации: полный адрес, код ФИАС, почтовый индекс, страна, регион, район, город, поселение, улица, дом, строение, корпус, квартираaddress_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_addressРабочий адрес: полный адрес, код ФИАС, почтовый индекс, страна, регион, район, город, поселение, улица, дом, строение, корпус, квартираwork_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_residenceАдрес места жительства/доставки: полный адрес,код ФИАС,почтовый индекс,страна,регион,район,город,поселение,улица,дом,строение,корпус,квартираaddress_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_addressАдрес для доставки: полный адрес,код ФИАС,почтовый индекс,страна,регион,район,город,поселение,улица,дом,строение,корпус,квартираdelivery_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_employee Признак сотрудника ПАО "Сбербанк"is_company_employee"is_company_employee":true,
stsНомер СТСsts

"sts":{

"number":"00 00 00000"

}

previous_identificationРеквизиты ранее выданного паспорта гражданина РФ: Серия документа, Номер документа, Кем выдан, Дата выдачиprevious_identification

"previous_identification":{

"series":"00 00",

"number":"000 000",

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

"issued_date":"0000-00-00"

}

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

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

"previous_given_name":"Имя"

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

educationСведения об образовании:Код + описание,начальное,среднее,среднее специальное,высшее,магистратура и пр.education

"education":{

"code":"1",

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

}

place_of_workНаименование организации(место работы)place_of_work"place_of_work": "место работы",
job_titleНаименование занимаемой должностиjob_title"job_title": "должность"
marital_statusСемейное положение:Код + описание,холост,женат,разведен,вдовец/ вдова,раздельное проживание,гражданский брак и пр.marital_status

"marital_status":{

"code":"1",

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

}

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