您好,
我是 Discourse 的新手,正尝试使用 Discourse SSO 模块将我的论坛与 Drupal 网站集成。我遵循了该模块的说明以及此主题中的内容,但遗憾的是,URL “mydrupalwebsite.com/discourse/sso” 返回了 404 错误。
自该主题发布以来,该模块增加了使用 API 密钥的新设置,但我不清楚该如何使用它。
有人遇到过同样的问题吗?
谢谢
您好,
我是 Discourse 的新手,正尝试使用 Discourse SSO 模块将我的论坛与 Drupal 网站集成。我遵循了该模块的说明以及此主题中的内容,但遗憾的是,URL “mydrupalwebsite.com/discourse/sso” 返回了 404 错误。
自该主题发布以来,该模块增加了使用 API 密钥的新设置,但我不清楚该如何使用它。
有人遇到过同样的问题吗?
谢谢
您能分享一下您正在使用的 Drupal 模块的链接吗?如果是这篇帖子中链接的模块,它上次更新于 2015 年 3 月,因此很可能存在一些问题。
这个 Drupal SSO 模块于 2019 年 12 月更新:https://www.drupal.org/project/discourse_sso。值得尝试一下。
我正在使用第二个,并且是最新版本。
我已经设置了 SSO 密钥和 SSO 网址,但在尝试登录时,虽然能看到预期的重定向,但 /discourse/sso 却返回了 404 页面。
该模块是否有文档?启用 SSO 的常规流程是:将 SSO 端点添加到 Discourse 的 sso url 站点设置,将 SSO 密钥添加到 sso secret 站点设置,然后启用 enable sso 站点设置。初次设置时,您可能还需要启用 verbose sso logging 站点设置。启用该设置后,您可以在站点的错误日志(位于“管理 / 日志 / 错误日志”)中查看有关 SSO 错误的详细信息。
启用 Discourse 设置后,请确保已将您的 Discourse 站点 URL 和 sso secret 添加到 SSO 提供商站点。
根据您遇到的错误,很可能是您的 Discourse 站点尚未启用 enable sso 站点设置。
如果在启用 SSO 后访问 Discourse 站点时遇到问题,作为管理员,您可以通过访问 Discourse 站点的 /u/admin-login 来绕过 SSO 登录。在页面表单中输入您的管理员电子邮件地址,系统将向您发送一次性登录链接。
非常感谢您的帮助。不幸的是,该模块的文档仅限于其项目页面。
我只检查了“启用 SSO”、“详细 SSO 日志”选项,并在“SSO URL”字段中填写了“mywebsite/discourse/sso”,同时填写了“SSO 密钥”字段。
我遵循了 Drupal 模块的指南,在相应字段中输入了 Discourse 论坛的 URL 和 SSO 密钥。
以下是日志:verbose_sso.txt|附件 (5.9 KB)
如果问题不在 Discourse 的设置中,我将再次联系该模块的开发者。
再次感谢。
我查看了该日志条目,但它并未显示错误——它只是 Discourse 上 SSO 过程开始的日志记录。在此之后不久应该会生成另一个显示错误的日志条目。能否请您再次尝试该流程?每次登录尝试都应生成相应的“详细 SSO 日志”条目。第一个条目显示 Discourse 上的过程开始,第二个条目则与 Discourse 如何处理从您的网站收到的响应有关。
有可能存在其他相关的错误消息,其开头并非“详细 SSO 日志”。请查看您发起 SSO 请求前后时间段的日志条目。
我再次尝试,收到了三条完全相同的日志消息,与之前的一条相同。如果按此推断,那意味着我的网站根本没有响应。
是的,听起来没错。你可以尝试打开浏览器的开发者工具,切换到“网络”选项卡,查看发出的请求。在该选项卡上勾选“保留日志”选项,然后点击你 Discourse 网站上的登录链接。
感谢您跟进此事!如果模块的新问题得到解决,请告诉我们。
好的,我仍在继续我的调查。
有没有什么原因导致我无法通过 SSO 使用不同账户登录 Discourse?也许是 Cookie 设置的问题?
启用 SSO 后,如果我退出登录再尝试重新登录,系统会自动以第一个账户登录。
不过,当我禁用 SSO 时,没有任何问题。
这听起来像是登出 Discourse 的操作并未与登出 SSO 提供商网站的操作同步。由于您仍然登录在 SSO 提供商网站上,下次点击 Discourse 登录链接时,系统会基于您在 SSO 提供商的登录状态进行身份验证。
Discourse 的 logout redirect 站点设置可用于将用户登出 SSO 提供商网站。当用户登出 Discourse 时,他们将被自动重定向到该 URL。SSO 提供商需要处理该 URL 以完成用户登出。不过,我对 Drupal 不够熟悉,无法确定具体需要如何实现这一功能。