Уведомление пользователя об ошибке
При возникновении ошибки входа по Сбер ID необходимо пользователю показать, что произошла ошибка и предложить войти еще раз по примеру ниже:

Ошибки при запросе кода авторизации (auth_code)
Описание ошибок c использованием JavaScript SDK
Если страница авторизац ии по Сбер ID была открыта в модальном окне и во время процесса авторизации произошла ошибка, то после редиректа по адресу, указанному в параметре oidc.redirect_uri, будет вызвана функция onErrorCallback принимающая в качестве аргумента объект, содержащий следующие значения:
- code
(String)
- код ошибки; - error
(String)
- значение, включенное в запрос, которое было передано на страницу авторизации по Сбер ID; - description
(String)
- текстовое описание ошибки.
Примечание: в зависимости от кода ошибки можно показать пользователю уведомление с возможной причиной ошибки
- invalid_request - В запросе отсутствуют обязательные атрибуты;
- unauthorized_client - АС - источник запроса не зарегистрирована или заблокирована в банке либо значение атр ибута client_id не соответствует формату;
- unsupported_response_type - Значение атрибута response_type не равно« code»;
- invalid_scope - Значение атрибута scope не содержит параметр openid в начальной позиции либо запрошенный scope содержит значения, недоступные для АС источника запроса;
- access_denied - Клиент отказался от передачи согласий;
- invalid_state - Значение атрибута state не соответствует изначальному;
- window_closed - Клиент закрыл окно авторизации по Сбер ID;
- invalid_browser - oidc-страница была открыта в режиме инкогнито или во встроенном браузере.
Описание ошибок c использованием Android SDK
Если state сгенерированный вами и state возвращенный при авторизации по Сбер ID не совпадет, результат будет ошибочным, в SberIDResultModel.errorDescription вернется фраза "invalid_state". При других ошибках, так как падение приложения Сбербанк Онлайн, прерывание сценария и др. будет ошибка "internal_error"
Пример ответа с ошибкой
appScheme://appName/appPath?result=FAILURE&error_code=5
типы возвращаемых ошибок | описание ошибок |
---|---|
invalid_request | В запросе отсутствуют обязательные атрибуты. |
unauthorized_client | АС-источник запроса не зарегистрирована в банке. |
unauthorized_client | АС-источник запроса заблокирована в банке. |
unauthorized_client | Значение атрибута client_id не соответствует формату. |
unsupported_response_type | Значение атрибута response_type не равно «code». |
invalid_scope | Запрошенный scope содержит значения, недоступные для АС-источника запроса. |
invalid_request | Значение code_challenge_method не соответствуют допустимым значениям. |
- Для любого из перечисленных типов ошибок МП СБОЛ на платформе Android возвращает в приложение партнера код 5 в параметре error_code без указания типа ошибки.
- В случае отсутствия в запросе атрибута redirect_uri или в случае если значение redirect_uri не зарегистрировано для данного партнера, банк перенаправляет клиента на экран, информирующий клиента о недоступности сервиса.
Описание ошибок c использованием iOS SDK
Если state
сгенерированный вами и state
возвращенный при авторизации по Сбер ID не совпадет, результат будет ошибочным, в SberIDResultModel.errorDescription
вернется фраза "invalid_state". При возникновении других проблем, например, отказ приложения Сбербанк Онлайн или прерывание сценария, верется ошибка internal_error.
Пример ответа с ошибкой:
appScheme://redirect?status=fail&error=invalid_request
№ | типы возвращаемых ошибок | описание ошибки |
---|---|---|
1 | invalid_request | В запросе отсутствуют обязательные атрибуты. |
2 | unauthorized_client | АС-источник запроса не зарегистрирована в банке. |
3 | unauthorized_client | АС-источник запроса заблокирована в банке. |
4 | unauthorized_client | Значение атрибута client_id не соответствует формату. |
5 | unsupported_response_type | Значение атрибута response_type не равно «code». |
6 | invalid_scope | Запрошенный scope содержит значения, недоступные для АС-источника запроса. |
7 | invalid_request | Значение code_challenge_method не соответствуют допустимым значениям. |
Ошибки при получении access token и id token
Пример ответа в случае ошибки:
HTTP/1.1 400 Bad Request Content-Type: application/json Cache-Control: no-store Pragma: no-cache { "httpCode": "400",
"httpMessage": "Bad Request", "moreInformation": "invalid_grant" }
Типы возвращаемых ошибок
Код ошибки | Название ошибки | Описание ошибки | Причина ошибки |
---|---|---|---|
400 | Empty header: authorization | {<br/>"httpCode":"400",<br/>"httpMessage":"Bad Request",<br/>"moreInformation":"Empty header: authorization"<br/>} | В заголовке запроса параметр Authorization имеет пустое значение или отсутствует. |
400 | rquid header does not match pattern | {<br/>"httpCode":"400",<br/>"httpMessage":"Bad Request",<br/>"moreInformation":"rquid header does not match pattern: ^(([0-9] [a-f] [A-F]){32})$"<br/>} | В заголовке запроса некорректно указан параметр RqUID. Корректный паттерн: "pattern": "^(([0-9][a-f][A-F])32)$" |
400 | Empty header: rquid | {<br/>"httpCode":"400",<br/>"httpMessage":"Bad Request",<br/>"moreInformation":"Empty header: rquid"<br/>} | В заголовке запроса параметр RqUID имеет пустое значение или отсутствует. |
400 | invalid_scope | {<br/>"httpCode":"400",<br/>"httpMessage":"Bad Request",<br/>"moreInformation":"invalid_scope"<br/>} | В теле запроса ошибка в параметре scope: используется пустое либо некорректное значение параметра. Корректное значение параметра scope необходимо смотреть в документации к API. |
400 | Bad Request | {<br/>"httpCode":"400",<br/>"httpMessage":"Bad Request",<br/>"moreInformation":"Bad Request"<br/>} | В заголовке запроса указаны некорректные значения параметров accept или content-type. Корректные данные параметров для вызова токена можно посмотреть в Параметрах запроса |
400 | invalid_request | {<br/>"httpCode":"400",<br/>"httpMessage":"Bad Request",<br/>"moreInformation":"invalid_request"<br/>} | В теле запроса ошибка в параметрах grant_type, code или redirect_uri используется пустое либо указано некорректное значение параметра. Корректные данные параметров для вызова токена можно посмотреть в Параметрах запроса. В запросе на получение токена не передан параметр code_verified, хотя изначально передавались параметры code_challenge и code_challenge_method в первом запросе. |
400 | Invalid object: the property 'grant_type' is missing | {<br/>"httpCode":"400",<br/>"httpMessage":"Bad Request",<br/>"moreInformation":"local:///authgw/auth/1.0/xsd/Token2Rq.jsd:42: [JSV0002] Invalid object: the property 'grant_type' is missing."<br/>} | В теле запроса отсутствует параметр grant_type. Корректные данные параметров для вызова токена можно посмотреть в Параметрах запроса. |
400 | Invalid value type 'string' | {<br/>"httpCode":"400",<br/>"httpMessage":"Bad Request",<br/>"moreInformation":"local:///authgw/auth/1.0/xsd/Token2Rq.jsd:42: [JSV0001] Invalid value type 'string'."<br/>} |