你好
我正在为自己的 Discourse 实现一个作为 SSO 提供者的认证服务,目前运行正常。但是,当我的用户(未登录用户)打开一个预填充主题的 URL 时,他们在重定向回 Discourse 后无法看到那些预填充的数据。
完整场景如下:
- 未登录用户打开一个预填充的主题创建 URL
- 系统自动将其重定向到 SSO 页面
- 用户通过 SSO 登录后,被重定向回
http://discourse_site/session/sso_login?....
- 我期望用户在此处看到已填充数据的主题创建框,但 Discourse 仅显示了最新的主题页面,甚至没有显示创建主题框
有人能帮我解决这个问题吗?是我的设置有问题,还是这是一个 Bug?
我也可以确认,如果我在某个特定主题页面中点击登录,重定向会正常工作,我会返回到该主题页面。
2 个赞
simon
2
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 个赞
simon
4
您只需按照该帖子中给出的格式创建一个链接。您需要将链接中的 URL 替换为您 Discourse 站点的正确地址,并将用户名从 scossar 更改为您站点上已存在的用户名。请勿在链接中添加 payload 或 sig 参数,这些将由您现有的 SSO 实现自动处理。return_path 参数的作用仅仅是将用户重定向到一个用于创建预填主题(topic)的 URL。
请注意,在我链接的示例中,我创建的是预填消息(message),而不是预填主题。您需要调整示例代码中的 return_path,使其用于创建主题而非消息。
1 个赞
system
(system)
关闭
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.