Как это работает
1
Пользователь нажимает кнопку ниже
Браузер переходит на
(App API)
2
API генерирует state и редиректит на портал
Устанавливает cookies:
sso_state, sso_provider, sso_return_url.
Перенаправляет на
3
Портал (этот мок-хост) генерирует ваучер
Эндпоинт
/sso/authorize создаёт JWT-ваучер для пользователя TEST_001
и редиректит обратно на /auth/sso/callback?voucher=...&state=...
4
API валидирует ваучер и state
Проверяет подпись RS256, сравнивает state с cookie, проверяет jti.
Создаёт/находит SSO-пользователя. Ставит
refresh-cookie.
5
Редирект в приложение с
?sso=1
Frontend видит маркер ?sso=1, вызывает POST /auth/refresh,
получает access token и показывает интерфейс залогиненного пользователя.
Запуск redirect flow
Нажмите кнопку, чтобы начать SSO redirect flow через провайдера .
Вас перенаправит через API → портал → callback → приложение.
Ожидаемый результат: после прохождения цепочки редиректов вы окажетесь
на
залогиненным как .
Примечание: для работы Сценария B необходимо, чтобы в Supabase был настроен
SSO-провайдер
с .
Выполните seed.sql из папки tools/iframe-host/.