您好 Discourse 团队,
在稳定版 v.2.8.10 上,“接受邀请”按钮无法正常工作。当您尝试通过 SSO 登录时,它只会将您重定向回邀请页面,而“接受邀请”按钮没有任何反应。控制台中也没有显示任何错误。有人能帮忙吗?
我认为这与最新的更新有关:SECURITY: Fix invite link validation (stable) (#18818) · discourse/discourse@7e4e8c8 · GitHub
谢谢
您好 Discourse 团队,
在稳定版 v.2.8.10 上,“接受邀请”按钮无法正常工作。当您尝试通过 SSO 登录时,它只会将您重定向回邀请页面,而“接受邀请”按钮没有任何反应。控制台中也没有显示任何错误。有人能帮忙吗?
我认为这与最新的更新有关:SECURITY: Fix invite link validation (stable) (#18818) · discourse/discourse@7e4e8c8 · GitHub
谢谢
能否确认一下您的网站是如何配置的?
启用 SSO 后,邀请功能历史上一直无法正常工作。这可能是一个回归问题,但我们需要了解更多信息。
您好 @Stephen ,
感谢您的回复!您具体需要什么信息?我们使用的是 discourse-saml 插件,通过 Okta(SSO)在稳定分支(v2.8.10)上进行自托管。在更新到 2.8.10 之前,我们能够创建发往群组的邀请链接,并且它们能够正常工作,用户通过 SSO 登录后,会被重定向到邀请设置中指定的帖子。
附加信息:
在之前的稳定版本 v2.8.9 中,访问 domain.com/invites/invitecode 时:
未登录用户将看到一个屏幕,要求他们通过 SSO(在 app.yml SAML 配置中指定的 Okta)登录,这将把他们重定向到 SSO 进行登录/注册,之后将执行邀请操作(重定向到主题、添加到组等)。
已登录用户将自动绕过邀请屏幕,并执行邀请操作。
在当前稳定版本 v2.8.10 中,访问 domain.com/invites/invitecode 时:
点击“通过 SSO 登录”按钮后,系统会提示用户登录(如果尚未登录),然后将用户重定向回邀请页面。
点击“接受邀请”按钮后,没有任何反应。
我们在网络浏览器控制台中观察到,有一个 PUT 请求到 domain.com/invites/show/invitecode.json,该请求返回 504 错误(仅在 2.8.10 版本中)。
我可以将此移至某个类别以报告此错误吗?
确认我们已了解该问题,您能否确认该问题并非出在 tests-passed 环境,而仅存在于 stable 环境中?
你好 @sam ,
感谢您的回复!很高兴得知您已了解该问题。
遗憾的是,我们没有一个带有 SSO 的测试通过实例,因为我们一直坚持使用稳定版。我有一个不带 SSO 的测试通过分支,那里没有问题。
编辑:我将尝试运行一个带有 SSO 的测试通过实例。
嘿 @sam,
我成功启动了一个 tests-passed 实例,并且在我这边没有遇到问题。
能够接受邀请。希望这能帮到你!
嗨 @sam!
有没有可能将稳定版移植回来,以便在稳定版上进行修复?
我看到 Discourse 有一个更新:2.8.11: Security Release
这个更新有可能修复这个问题吗?![]()
是的,我们会更新,非常感谢您的报告,完成后我们会通知您。请给我们一到两周的时间。
太棒了!谢谢你,@sam! ![]()
编辑:
供其他可能遇到此问题的人参考:
稳定版 2.8.11 并没有修复此问题。现在点击“接受邀请”会输出一个控制台日志错误:
PUT https://<DOMAIN>/invites/show/<INVITE_CODE>.json 404
.json URL 指向:
// https://<DOMAIN>/invites/show/<INVITE_CODE>.json
{
"errors": [
"找不到请求的 URL 或资源。"
],
"error_type": "not_found"
}
您好 @hyphalos,我今天开始查看这个问题。我对我们的 SAML 设置不太熟悉,请您多包涵。
这有点奇怪,“接受邀请”按钮应该只显示给已登录用户。您能否发布一张截图,显示已登录和未登录用户看到的特定邀请,以及您在此处为邀请选择的选项:
你好 @martin!
感谢你的回复。抱歉回复晚了,我之前生病了。
我做了进一步的测试,发现更新到 v2.8.11 后,无论创建邀请的设置如何,人们都只能接受一次邀请。我测试了“到达主题”、“不到达主题”、“添加到组”、“不添加到组”等设置,人们都只能接受一次邀请。这是预期的行为吗?
如果访客注册但再次使用相同的邀请 URL,他们将卡在邀请页面(不重定向到“到达主题”)。当他们点击“接受邀请”时,会弹出此错误:
编辑:我想补充一点,如果这是预期的行为,那么不会出现“您之前已接受此邀请”之类的错误提示,或者只是重定向到邀请中设置的“到达主题”位置。
是的,这是预期的。不是错误,而是无法多次接受邀请的部分。我们在 New 'accept invitation' prompt feature causing issues with invitation links - #14 by martin 讨论过这个问题,我进行了一次修复,但现在我看到需要将该修复反向移植到 stable 版本,cc @sam
嗨 @martin,太棒了,感谢您的调查!
我刚刚将此修复提交到了 stable 版本,链接如下:
嘿 @martin!
再次感谢您的修复!
我已经更新到 2.8.12(根据管理员面板中的 commit tag,其中包含修复程序),现在我看到一个错误消息(在一个测试账户上),提示尝试接受一个我曾经在该测试账户上接受过的邀请:
这很棒!
不过,作为已经登录的用户,我没想到会显示“Okta SSO”按钮。当点击该按钮时,它会循环进入 SSO,然后将我带回到邀请页面。既然用户已经登录,是否应该隐藏登录按钮以避免混淆?
此主题已在 4 天后自动关闭。不再允许回复。