通过URL创建新的预填充主题时SSO重定向出现问题

你好

我正在为自己的 Discourse 实现一个作为 SSO 提供者的认证服务,目前运行正常。但是,当我的用户(未登录用户)打开一个预填充主题的 URL 时,他们在重定向回 Discourse 后无法看到那些预填充的数据。

完整场景如下:

  • 未登录用户打开一个预填充的主题创建 URL
  • 系统自动将其重定向到 SSO 页面
  • 用户通过 SSO 登录后,被重定向回 http://discourse_site/session/sso_login?....
  • 我期望用户在此处看到已填充数据的主题创建框,但 Discourse 仅显示了最新的主题页面,甚至没有显示创建主题框

有人能帮我解决这个问题吗?是我的设置有问题,还是这是一个 Bug?

我也可以确认,如果我在某个特定主题页面中点击登录,重定向会正常工作,我会返回到该主题页面。

2 个赞

请尝试使用此处概述的方法:https://meta.discourse.org/t/compose-a-new-pre-filled-personal-message-via-url/35984/11。

2 个赞

好的,它起作用了。非常感谢!

旧消息:

感谢 @simon 的回复。不幸的是,我无法让它正常工作。您的链接中提到应使用如下 URL:

http://localhost:3000/session/sso?return_path=http%3A%2F%2Flocalhost%3A3000%2Fnew-message%3Fusername%3Dscossar%26title%3DInformation+requested+about+gentle+yoga+classes

我最初以为应该将其添加到 官方 Discourse SSO 文档 的第 6 阶段。因此它应该是这样的:

http://discourse_site/session/sso_login?sso=payload&sig=sig&return_path=https%3A%2F%2Fdiscourse_site%2Fnew-message%3Fusername%3Dscossar%26title%3DInformation%2Brequested%2Babout%2Bgentle%2Byoga%2Bclasses

但这并没有奏效。所以我开始在不同位置进行测试,但都没有成功。能否请您详细说明一下 return_path 应该放在哪里?

1 个赞

您只需按照该帖子中给出的格式创建一个链接。您需要将链接中的 URL 替换为您 Discourse 站点的正确地址,并将用户名从 scossar 更改为您站点上已存在的用户名。请勿在链接中添加 payloadsig 参数,这些将由您现有的 SSO 实现自动处理。return_path 参数的作用仅仅是将用户重定向到一个用于创建预填主题(topic)的 URL。

请注意,在我链接的示例中,我创建的是预填消息(message),而不是预填主题。您需要调整示例代码中的 return_path,使其用于创建主题而非消息。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.