Я прочесываю голову примерно на 2 дня, как решить то, что казалось простой задачей, но это начинает сводить меня с ума.
У меня есть приложение, в котором пользователи будут использовать SAML 2.0 для аутентификации. У меня есть приложение-реакция, настроенное для интерфейса, и думал, что я собираюсь использовать JWT, чтобы обеспечить связь rest-api между front-end и backend.
Когда пользователь регистрируется, поток выглядит следующим образом:
- Пользователь обращается к www.server.com/и получает статический HTML-код с реакционным приложением
- Пользователь нажимает "Войти" и обращается к www.server.com/login
- Паспорт-saml перенаправляет пользователя на saml-провайдер идентификации. Пользователь входит в систему.
- Пользователь обращается к www.server.com/callback с помощью SamlResponse в req.body, который декодируется паспорт-saml и помещается в req.user.
- Если пользователь еще не существует, я создаю пользователя в базе данных.
- Я создаю JWT.
Что я должен делать дальше? Проблема заключается в том, что пользователь не находится в реакторе при обратном вызове от поставщика удостоверений, поэтому я потерял все состояние в приложении, поэтому все, что я отвечу, будет отправлено в браузер.
Есть ли способ заставить браузер предоставить мне SamlResponse, с которым отправляется идентификатор? Затем я могу отправить его на сервер в качестве http-запроса из приложения-реакции.