Для того, чтобы МП СБОЛ смог бесшовно авторизовать пользователя в сценарии sbol2app/store, необходимы доработки:
- Научить ваше приложение открываться по
appLink
- Обработать sberIDRedirectUri
- Аутентификацию пользователя в МП СБОЛ
1. Научить ваше приложение открываться по appLink
Создайте appLink, который может открыть ваше приложение.
МП СБОЛ добавляет к диплинку приложения партнера параметр sberIDRedirect (в значении указывается хост deeplink для вызова МП СБОЛ) и запускает его
partner://partner.host/auth?
&sberIDRedirect=sberbankidlogin%3A%2F%2Fsberbankidsso
Если приложения не окажется на устройстве, запустится storeLink. Откроется страница для скачивания приложения. Тут заканчивается сценарий, пользователь уже вручную сможет войти после скачивания.
2. Обработать sberIDRedirectUri
Сервис аутентификации партнера анализирует ссылку на наличие параметров 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 и получение пользовательских данных, подробнее можно почитать тут