Omniauth JWT 重定向

这篇帖子 之后,我已经成功使用 JWT 搭建了 SSO。

使用 discourse-omniauth-jwt 库 时,我不确定如何在登录后进行重定向。

当用户登录我的网站时,我会获取 JWT 并立即将其登录到 Discourse。在此流程结束时,他们最终停留在 Discourse 站点,而不是返回到我的网站。

我曾尝试查看 omniauth 库 的重定向方法,其中包括来自 此处 的 origin 参数和 destination_url cookie。但这些方法似乎都不起作用。

也许 @eviltrout 能对此提供一些见解。

编辑:刚意识到我一直在查看两个不同的库:omniauth 和 Discourse 的 omniauth 回调。无论如何,仍然不确定如何实现这一功能。

1 个赞

所以这里的问题是:

  1. 用户登录您的网站
  2. 您将他们重定向到 Discourse 进行登录
  3. 他们在 Discourse 上成功登录?

我认为这不是一个受支持的路径。通常,用户会在 Discourse 上点击“登录”,访问您的网站进行身份验证,然后被重定向回来。如果用户直接在您的网站上登录,他们应该留在您的网站上。

我们通常的做法是保持 Discourse 处于未登录状态,但当用户点击“登录”时,系统会将其重定向回来,而无需再次填写身份验证表单。

7 个赞

嗯,有道理。现在想想,登录也没什么用,因为嵌入内容无法利用认证会话。

1 个赞

因此,嵌入内容确实会利用身份验证会话(或会话 Cookie)来显示或隐藏私有的 Discourse 主题。

这种身份验证流程是合理的,但首先,我打算将用户在新标签页中重定向到 Discourse 论坛进行登录。刷新后,他们将能够访问私有主题。