如何在我的网站上检查用户是否已登录到我的Discourse?

我正在构建一个桌面应用程序,并附带一个论坛(当然是运行 Discourse)和一个网站。

在我们的网站上,如果网站访问者也登录了论坛,我想显示一些额外的信息。

我已经弄清楚了如何从网站或桌面应用程序登录(请参阅此帖子),但我找不到一种方法来检查我的网站访问者是否已登录(如果已登录,他是谁),而无需实际要求他们登录。

有没有办法做到这一点,例如使用 Discourse API?

1 个赞

我认为您可能需要从 SSO 负载中获取用户 ID,然后使用 Discourse API 请求获取用户名和当前登录状态。

如果用户在论坛网站上登录,那么我之后如何获取 SSO 负载?我知道如何在我自己发起登录时获取它(通过生成链接 {forum_url}/session/sso_provider?sso=... 等),但当用户发起登录时,我不知道如何获取 SSO 负载。

这确实应该可行,尽管 API 请求的确切 URL 似乎并未在 https://docs.discourse.org 中记录。正确的 URL 是什么?

1 个赞

我不确定,但我怀疑您需要从 payload 的 JSON 数据中访问 user_auth_token?这只是一个猜测,希望能给您一些启发。也许更了解 Discourse Connect SSO 的人可以帮助您。