我认为这可能是几年前类似问题的重现:Discourse doesn't redirect to return_sso_url after user logs in on private site - #8 by vinothkannans
我有一个使用 omniauth-discourse 作为登录方式的 Rails 应用,运行良好。
然后我的 Discourse 实例通过 SSO 连接到另一个我维护的应用。
在这种情况下,Discourse 既是我的 SSO 提供商,同时也通过 SSO 与另一个应用进行集成。
当用户已经登录到 Discourse 时,重定向回原始应用的功能非常顺畅。
但当用户尚未登录时,他们会被引导至 SSO 流程,但返回 URL 始终被设置为 return_sso_url=https://forum.snap.berkeley.edu/session/sso_login。这看起来应该是原始请求的 URL,对吗?
- 用户点击第一个应用中的登录按钮,该按钮将他们重定向到一个最终形如以下的 URL:
https://forum.snap.berkeley.edu/session/sso_provider?sso=nonce=4...f&return_sso_url=https://www.snapcon.org/accounts/auth/discourse/callback &sig=1...6(为清晰起见我已解码) - 随后,Discourse 将用户重定向到第二个应用的 Discourse 端点:
https://snap.berkeley.edu/api/v1/discourse-sso?sig=f...d&sso=nonce=6...1&return_sso_url=https://forum.snap.berkeley.edu/session/sso_login - 用户登录后,却只被带到论坛首页。
是否有变通方法?或者这个问题是否可以在后续更新中解决?
我承认我只是将 Discourse 用作代理,但目前它是我整合这两个应用的最佳工具。
谢谢!