您没有理解我想表达的意思。我不是在询问登录后从 Discourse 中检索用户详细信息。请理解我试图实现的完整流程,并告知我这是否可以通过 Discourse 实现,或者我是否应该继续采用自己的方法。
目前,我有一个使用 Laravel 框架构建的项目,我想让用户能够访问 Discourse 论坛以获取反馈。我已经决定为 Discourse 实现 SSO 登录。我创建了一个 Discourse 管理员帐户,并启用了必要的 SSO 登录设置,包括启用 SSO、设置重定向 URL 和配置密钥。
现在,我在我的项目中添加了一个“Discourse Connect”按钮。我希望当用户点击此按钮时,他们可以使用我的凭据注册或登录,并自动登录到 Discourse。当用户点击“Discourse Connect”按钮时,我会将他们重定向到我的基本社区 URL 和 session/sso 端点,然后该端点会重定向回我的 Discourse Connect URL。我收到了 SSO 和 sig 参数的请求,我理解这些参数用于验证。但是,我需要 user_id 或某个标识符来从我的数据库中检索用户数据,以便进行验证、身份验证并将用户登录到 Discourse。
我的问题是:Discourse 是否有任何 API 或机制可以在请求中返回 user_id 以及 SSO 和 sig 参数?这一点很重要,因为如果不请求中检索用户数据,我就必须让用户再次登录,这将提供糟糕的用户体验。本质上,当用户登录到我的项目并点击“Discourse Connect”按钮时,会触发 Discourse Connect URL,我将收到 SSO 和 sig 参数。为了验证用户,我需要从数据库中获取用户数据,但这需要用户再次登录,而我想避免这种情况。
我想要一种无缝的体验,如果用户已经登录过一次,他们就不需要再次登录。他们应该能够直接使用他们的项目凭据访问 Discourse 论坛。