Доработки сайта партнера для поддержки sbol2web
Для того, чтобы МП СБОЛ смог открыть ваш сайт по webLink, необходимо доработать ваш сайт:
- Научить ваш сайт открываться по
webLink
- Обработать
sberIDRedirectUri
иtoken
- Аутентификацию пользователя в Сбер ID
1. Научить ваш сайт открываться по webLink
Создайте webLink, который может открыть ваше приложение.
МП СБОЛ добавляет к ссылке на сайт партнера параметр sberIDRedirect
(в значении указывается хост deeplink для вызова МП СБОЛ) и параметр token
, открывает ее во встроенном браузере.
https://partner.ru/auth?
type=auto
&to=%2Fcatalog
&sberIDRedirect=sberbankidlogin%3A%2F%2Fsberbankidsso
&token=dn1j2n3jn123j21n3
Если МП СБОЛ поддерживает sbol2web new (сценарий поддерживается, начиная с версий iOS 14.18, Android 14.18). Сбер ID проверяет в МП СБОЛ наличие у пользователя оферты Удобный доступ (УД). Если оферта УД не принята, то пользователю отображается экран принятия оферты (ссылка на оферту, кнопка Подтвердить), пользователь подтверждает оферту
2. Обработать sberIDRedirectUri и token
Сервис аутентификации партнера анализирует ссылку на наличие параметров sberIDRedirect
и token
.
Если в ссылке есть параметр sberIDRedirect, то сервис аутентификации партнера использует значение этого параметра в качестве хоста: [sberIDRedirectUri] + ? + token
+ OIDC параметры
и формирует обратную ссылку для авторизации по Сбер ID.
Необходимо добавить token
в обратную ссылку на ровне с OIDC параметрами.
Если token
пришел к вам пустым, тогда его передавать не нужно. Актуально для старых версий МП СБОЛ.
[Значение из параметра sberIDRedirect]?
scope=openid name phones email
&token=[значение из параметра token]
&client_id=*******-EEA3-D4EC-C535-A12A618A4C3C
&response_type=code
&state=UhdlDQS6vG4m
&nonce=TGfhfBxr5ak1
&redirect_uri=https%3A%2F%2Fpartner.ru%2Fauth%3Futm_source%3DQwerty_478Qwerty_478Qwerty_478Qwerty_478Qwerty_4789%26utm_medium%3DAsdfgh_123%26utm_campaign%3DZxcvbn_789
Пользователь уже может быть залогинен в ваше приложение, тут можно как сделать перелогин, так и сразу перевести пользователя на нужный экран вашего приложения. Все зависит от конкретного сценария. В большинстве случаях, повторная авторизация не требуется и можно сразу ввести на нужный раздел приложения.
Если webLink содержит параметр to
, то партнер сохраняет это значение в связке со state
. Сохранять можно на своем backend или в своей cookie. Это нужно, чтобы после успешной аутентификации направить пользователя туда, куда он шел изначально (до старта аутентификации)
Значение параметра sberIDRedirect может динамически меняться, в зависимости от сценария и версии МП СБОЛ! Не завязывайтесь на какое-то конкретное значение этого параметра.
Партнер автоматически (без клика и действий пользователя) запускает полученную ссылку
3. Авторизация пользователя по Сбер ID
Сбер ID выполняет аутентификацию пользователя и открывает во встроенном браузере сайт партнера (адрес, указанный в redirect_uri
) и параметры state
и code
.
https://partner.ru/auth?
utm_source=Qwerty_478Qwerty_478Qwerty_478Qwerty_478Qwerty_4789
&utm_medium=Asdfgh_123
&utm_campaign=Zxcvbn_789
&code=qwdjwqe1j2321j3
&state=adh321h32h13
По значению state
восстанавливается значение to и по его значению направляет пользователя в целевой раздел. Пример: https://partner.ru/catalog
Если МП СБОЛ не поддерживает sbol2web new (версий до iOS 14.18, Android 14.18), на этом шаге пользователь вернется в МП СБОЛ для проверки наличия оферты Удобный доступ (УД). Если оферта УД не принята, то пользователю отображается экран принятия оферты (ссылка на оферту, кнопка Подтвердить), пользователь подтверждает оферту
Пользователь успешно авторизован на сайте партнера и попал в тот раздел, в который шел изначально. Под авторизацией понимается обмен code на AT и получение пользовательских данных, подробнее можно почитать тут