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

Инициализация и базовая настройка

Обновлено 27 апреля 2024

Важно: Если вы используете Xcode версии 15 и выше, убедитесь, что флаг ENABLE_USER_SCRIPT_SANDBOXING в настройках вашего проекта установлен в значение NO. Это обеспечит корректное выполнение скриптов сборки, которые могут быть необходимы для правильной работы SDK.

Конфигурация Info.plist для подключения к Сбер ID

Чтобы обеспечить стабильную работу вашего приложения с сервисами Сбер ID, необходимо выполнить настройку Info.plist. Это позволит поддерживать подключение даже в случае изменений со стороны сервера, связанных с сертификатами безопасности.

1. Разрешение нешифрованных запросов

Для обеспечения подключения к сервису Сбер ID в условиях, когда может быть изменена или отозвана валидность сертификатов безопасности на сервере, необходимо разрешить вашему приложению осуществлять нешифрованные запросы. Это не означает отказ от безопасности, а является гарантией стабильного подключения в любых условиях. В Info.plist добавьте следующие параметры:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>id.sber.ru</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>

Это позволит приложению поддерживать работу с сервисом Сбер ID даже в случае изменений на стороне сертификатов безопасности сервера. Важно подходить к этой настройке с пониманием потенциальных рисков для безопасности и использовать ее только как временное решение или в условиях высокого доверия к сервису.

2. Регистрация кастомного URL Scheme для вашего приложения

Для того чтобы приложение Сбербанк Онлайн могло перенаправить пользователя обратно в ваше приложение после авторизации, необходимо зарегистрировать кастомный URL Scheme.

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>com.example.app</string>
<key>CFBundleURLSchemes</key>
<array>
<string>myapp</string>
</array>
</dict>
</array>

Замените "myapp" на уникальный идентификатор, который будет использоваться как ваш URL Scheme. Это позволит SDK корректно возвращать пользователя в ваше приложение после процесса авторизации.

3. Разрешение запросов к приложениям для авторизации

Чтобы ваше приложение могло проверять наличие установленных приложений Сбербанк Онлайн для выбора метода авторизации через Сбер ID, в Info.plist добавьте конфигурацию для запроса URL-схем:

Скриншот выбора приложения Сбербанк Онлайн
<key>LSApplicationQueriesSchemes</key>
<array>
<string>sberbankidexternallogin</string>
<string>sbolidexternallogin</string>
</array>

Это позволит приложению идентифицировать, установлены ли приложения Сбербанк Онлайн на устройстве, и предложить пользователю авторизацию через них.

Инициализация и настройка Сбер ID SDK

Инициализируйте Сбер ID SDK, установив clientID.

SIDManager.initSberID(clientId: "Ваш_clientID")

ClientID является обязательным параметром для инициализации SDK и не может быть пустым. Пустая строка как значение clientID не рекомендуется и может привести к некорректной работе SDK. Однако, если необходимо, clientID может быть установлен или изменен позже.

SIDManager.setClientID("Новый_clientID")

Настройка пользовательских предпочтений (опционально)

Настройка SIDUIPreferences позволяет настраивать внешний вид ЕЛК, включая цветовую схему и шрифты. А profileUrl позволит получать дополнительную информацию. Этот шаг необязателен, если ЕЛК не используется в вашем приложении.

let uiPreferences = SIDUIPreferences(appName: "Ваше приложение",
themeColorLight: UIColor.white,
themeColorDark: UIColor.black,
semiboldFont: UIFont.systemFont(ofSize: 16, weight: .semibold),
mediumFont: UIFont.systemFont(ofSize: 14, weight: .medium),
isShowErrorOnMain: true)

SIDManager.initSberID(clientId: "Ваш_clientID",
profileUrl: "URL для запроса данных, если необходим",
uiPreferences: uiPreferences)

Настройка для работы с тестовыми стендами (опционально)

Чтобы обеспечить гибкость тестирования вашего приложения, Сбер ID SDK поддерживает конфигурацию для различных тестовых стендов. Вы можете легко переключаться между стендами, изменяя параметр standType при инициализации SDK. Это позволяет проверять работу приложения в разных условиях и с различными настройками безопасности.

SIDManager.initSberID(clientId: "Ваш_clientID", standType: .ift)

Доступные значения для standType включают .prom (продакшн), .ift, .psi, а также другие специализированные стенды.

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