# 使用Discourse的SSO登录

**URL:** <https://meta.discourse.org/t/sso-login-with-discourse/234702>\
**Category:** SSO\
**Created:** [2022年八月1日 16:51 UTC](https://meta.discourse.org/t/sso-login-with-discourse/234702 "2022-08-01T16:51:51Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![suraj96100singh](https://avatars.discourse-cdn.com/v4/letter/s/22d042/32.png) [@suraj96100singh](https://meta.discourse.org/u/suraj96100singh)\
**Post date:** [2024年十月3日 06:48 UTC](https://meta.discourse.org/t/sso-login-with-discourse/234702/7 "2024-10-03T06:48:08Z")

</div>

您没有理解我想表达的意思。我不是在询问登录后从 Discourse 中检索用户详细信息。请理解我试图实现的完整流程，并告知我这是否可以通过 Discourse 实现，或者我是否应该继续采用自己的方法。

目前，我有一个使用 Laravel 框架构建的项目，我想让用户能够访问 Discourse 论坛以获取反馈。我已经决定为 Discourse 实现 SSO 登录。我创建了一个 Discourse 管理员帐户，并启用了必要的 SSO 登录设置，包括启用 SSO、设置重定向 URL 和配置密钥。

现在，我在我的项目中添加了一个“[Discourse Connect](https://meta.discourse.org/t/13045?silent=true)”按钮。我希望当用户点击此按钮时，他们可以使用我的凭据注册或登录，并自动登录到 Discourse。当用户点击“[Discourse Connect](https://meta.discourse.org/t/13045?silent=true)”按钮时，我会将他们重定向到我的基本社区 URL 和 session/sso 端点，然后该端点会重定向回我的 [Discourse Connect](https://meta.discourse.org/t/13045?silent=true) URL。我收到了 SSO 和 sig 参数的请求，我理解这些参数用于验证。但是，我需要 user\_id 或某个标识符来从我的数据库中检索用户数据，以便进行验证、身份验证并将用户登录到 Discourse。

我的问题是：Discourse 是否有任何 API 或机制可以在请求中返回 user\_id 以及 SSO 和 sig 参数？这一点很重要，因为如果不请求中检索用户数据，我就必须让用户再次登录，这将提供糟糕的用户体验。本质上，当用户登录到我的项目并点击“[Discourse Connect](https://meta.discourse.org/t/13045?silent=true)”按钮时，会触发 [Discourse Connect](https://meta.discourse.org/t/13045?silent=true) URL，我将收到 SSO 和 sig 参数。为了验证用户，我需要从数据库中获取用户数据，但这需要用户再次登录，而我想避免这种情况。

我想要一种无缝的体验，如果用户已经登录过一次，他们就不需要再次登录。他们应该能够直接使用他们的项目凭据访问 Discourse 论坛。

---

_[View the full topic](https://meta.discourse.org/t/sso-login-with-discourse/234702)._
