Для того, чтобы МП СБОЛ смог бесшовно авторизовать пользователя в сценарии sbol2app/web, необходимы доработки:
- Реализовать точку входа в ваше приложение/сайт
appLink
- Обработать
sberIDRedirectUri
и для sbol2webtoken
- Аутентификацию пользователя в МП СБОЛ
1. Научить ваше приложение/сайт открываться по appLink
Создайте appLink, который может открыть ваше приложение.
МП СБОЛ добавляет к диплинку приложения партнера параметр sberIDRedirect (в значении указывается хост deeplink для вызова МП СБОЛ) и запускает его
partner://partner.host/auth?
&sberIDRedirect=sberbankidlogin%3A%2F%2Fsberbankidsso
Если приложения не окажется на устройстве, запустится webLink и дальше пойдет сценарий sbol2web
2. Обработать sberIDRedirectUri и token
Сервис аутентификации партнера анализирует ссылку на наличие параметров sberIDRedirect. Если в ссылке есть параметр sberIDRedirect, то сервис аутентификации партнера использует значение этого параметра в качестве хоста: {значение параметра sberIDRedirect}{oidc-параметры, в т.ч. тут же state} и формирует обратную ссылку для авторизации по Сбер ID.
[Значение из параметра sberIDRedirect]?
scope=openid name phones email
&client_id=*******-EEA3-D4EC-C535-A12A618A4C3C
&response_type=code
&state=UhdlDQS6vG4m
&nonce=TGfhfBxr5ak1
&redirect_uri=partner%3A%2F%2Fpartner.host%2Fauth
Пользователь уже может быть залогинен в ваше приложение, тут можно как сделать перелогин, так и сразу перевести пользователя на нужный экран вашего приложения. Все зависит от конкретного сценария. В большинстве случаях, повторная авторизация не требуется и можно сразу ввести на нужный раздел приложения.
Значение параметра sberIDRedirect может динамически меняться, в зависимости от сценария и версии МП СБОЛ! Не завязывайтесь на какое-то конкретное значение этого параметра.
Партнер автоматически (без клика и действий пользователя) запускает полученную ссылку
3. Авторизация пользователя в МП СБОЛ
МП СБОЛ (Сбер ID) выполняет аутентификацию пользователя и открывает приложение партнера (диплинк, указанный в redirect_uri
) и параметры state
и code
.
partner://partner.host/auth?
&code=qwdjwqe1j2321j3
&state=adh321h32h13
На этом шаге пользователь вернется в МП СБОЛ для проверки наличия оферты Удобный доступ (УД). Если оферта УД не принята, то пользователю отображается экран принятия оферты (ссылка на оферту, кнопка Подтвердить), пользователь подтверждает оферту
Пользователь успешно авторизован в приложении партнера и попал в тот раздел, в который шел изначально. Под авторизацией понимается обмен code на AT и получение пользовательских данных, подробнее можно почитать тут