2

我目前正在尝试按照此解决方法实施静默刷新

但是,即使我已登录,如果我尝试向 oauth2/authorize 端点发出 AJAX GET 请求,我会得到 200 的状态。我尝试直接访问浏览器中的 URL,它成功了。我需要传递其他信息吗?

任何帮助将不胜感激,谢谢!

4

1 回答 1

1

我最终解决了自己的问题,并且不必使用 iframe。

原始问题的解决方案(我使用的是授权码流):

  1. 在您的服务器上设置一个端点,并使用 FusionAuth 可以重定向到的静默响应(端点 1)。
  2. 设置您将从应用程序调用的端点以执行静默刷新(端点 2)。
  3. 从应用程序中,向端点 2 发送 AJAX GET 请求。
  4. 在端点 2 的服务器端,向 FusionAuth 发送 AJAX GET 请求redirect_uri=(endpoint 2)
  5. 成功后,获取重定向的 url。(在我用 axios 做的 express.js 中response.request.res.responseUrl
  6. 如果 url 是当前服务器主机而不是 fusionauth 服务主机,则完成验证代码流程。返回令牌并告诉浏览器用户已登录。
  7. 在所有其他情况下,用户未登录,因此返回该用户未登录的应用程序。
于 2020-05-01T18:05:23.827 回答