您可以使用 DiscourseConnect 来实现此目的(以 Discourse 作为身份验证提供者):https://meta.discourse.org/t/use-discourse-as-an-identity-provider-sso-discourseconnect/32974。
我还没有尝试过,但 prompt 参数可能对您的情况有用:
prompt: 如果prompt=none,则 SSO 请求被视为“仅检查”请求。如果浏览器/设备已登录 Discourse,Discourse 将像往常一样返回成功的 SSO 响应,其中包含用户信息。如果浏览器/设备未登录,则 Discourse 不会要求用户登录,而是会立即返回一个带有failed=true参数的 SSO 响应,而不是用户信息。这提供了一种查询用户是否已登录的机制,而无需在用户未登录时将其重定向到登录对话框。