关于如何解决看似简单的任务,我已经摸索了大约 2 天,但它开始让我发疯。
我有一个应用程序,用户将使用 SAML 2.0 进行身份验证。我为前端设置了一个 react-application,并想我会使用 JWT 来保护前端和后端之间的 rest-api 通信。
当用户登录时,流程如下:
- 用户访问 www.server.com/ 并通过 react-application 获得静态 HTML
- 用户单击“登录”并访问 www.server.com/login
- passport-saml 将用户重定向到 saml 身份提供者。用户登录。
- 用户使用 req.body 中的 SamlResponse 回调 www.server.com/callback,该 SamlResponse 由 passport-saml 解码并放入 req.user。
- 如果用户不存在,我在数据库中创建用户。
- 我创建了一个 JWT。
接下来我该怎么办?问题是当从身份提供者回调时用户不在反应应用程序中,所以我已经丢失了应用程序中的所有状态,所以无论我回复什么都会被发送到浏览器。
有什么办法可以强制浏览器给我身份提供者正在回调的 SamlResponse?然后我可以将它作为来自 react-application 的 http-request 发送到服务器。