WebLink
— это ссылка на ваш сайт, для бесшовного входа sbol2web. Он необходим для перехода из МП СБОЛ на ваш сайт и автоматического запуска процесса авторизации пользователя.
https://partner.ru/auth
Вы можете формировать его любым удобным способом, добавляя utm метки, дополнительные параметры и тд.
Например передавать какой тип входа type
, чтобы фронт понимал, что происходит автоматический вход.
https://partner.ru/auth?
type=auto
Чтобы после успешной аутентификации направить пользователя туда, куда он шел изначально (до старта аутентификации), можете использовать параметр to
.
https://partner.ru/auth?
type=auto
&to=catalog
Значение to
нужно сохранить в связке со state
(см Общая схема взаимодействия). Сохранять можно на своем backend или в своей cookie.
Проблема двойного кодирования параметров webLink в старых версиях МП Сбол (до 16.0.0)
В версиях МП Сбол до 16.0.0 включительно, есть ошибка: параметры webLink с особыми символами (/, &, ?) могут кодироваться дважды. Из-за этого сайт не сможет корректно обработать такие параметры.
Пример:
Вы передаете to=%2Fsearch_promo%3Ftime%3Dcode91881, а итоговая ссылка выглядит так: https://partner.ru/auth?to=%252Fsearch_promo%253Ftime%253Dcode91881
.
Здесь /
закодирован дважды (%252F
вместо %2F
).
Что делать:
- Не используйте спецсимволы в параметрах. Вместо
to=/search_promo?time=code91881
используйте отдельные параметры:to=search_promo&time=code91881
, а затем собирайте строку на сайте. - Реализовать дополнительное декодирование нужного параметра
%252Fsearch_promo%253Ftime%253Dcode
->/search_promo?time=code91881
Используйте to
только если по какой-то причине вам для нужного редиректа не подходит redirect_uri.
Такое может быть, если у вас одна точка обработки code и state для всех коммуникаций.