我有一个 WordPress 网站,它使用 WPDiscourse 插件作为 Discourse 的 SSO 提供商。论坛是公开的,但有一些私有群组。
当我想添加按钮将用户从我的 WordPress 网站引导到 Discourse 中的私有群组时,我使用的是 SSO URL,正如此处所述,这样用户就不会看到“哎呀!该页面不存在或已私有。”的提示。
但是,当用户已经通过 SSO 在 Discourse 中进行身份验证,然后他们返回并点击相同的按钮时,他们会再次进入登录页面,即使他们在登录时勾选了“记住我”复选框。理想情况下,一旦他们在 Discourse SSO 中进行了身份验证,他们就可以自由地导航到私有群组。
是否有更好的设置方法?
我曾考虑在 WP 登录页面添加代码,并验证用户是否已在 Discourse 中登录,如果是,则重定向到 URL 中的“return_path”参数指定的页面。这会是解决方法吗?如果是,我可以使用哪些函数或 API 调用来实现它?
谢谢!
1 个赞
simon
2
如果用户已登录到您的 WordPress 网站,则不应发生这种情况。您能否澄清一下遇到此问题的用户是否已登录到 WordPress?如果他们已登录,则预计他们将被静默重定向到您在 return_path 参数中设置的 Discourse URL。
3 个赞
angus
(Angus McLeod)
3
嘿 @rodrigo.braga 
我也有点困惑。如果您能确认以下内容:
设置
按照这里的说明,WordPress 被设置为 Discourse 的 DiscourseConnect 提供商
情况 1
- 用户正在您的 WordPress 网站上,并且未登录 WordPress
- 用户点击 WordPress 上的链接,格式为
https://discourse.example.com/session/sso?return_path=/g/private_group
- 系统提示用户登录 WordPress
- 用户登录 WordPress
- 用户被重定向到
https://discourse.example.com/g/private_group
- 用户看到
private_group,因为他们现在已通过 DiscourseConnect 登录到 Discourse,并且是 private_group 的成员。
目前是这种情况吗?
情况 2
- 用户正在您的 WordPress 网站上,并且已登录 WordPress
- 用户点击 WordPress 上的链接,格式为
https://discourse.example.com/session/sso?return_path=/g/private_group
- 系统提示用户登录 WordPress
目前是这种情况吗?
3 个赞
谢谢 Simon,是的,用户已登录 WordPress。
我场景中奇怪的地方在于,我有一个主要的 WP 站点 (WPSite1),它使用 WP Discourse 作为 Discourse 的 DiscourseConnect 提供程序。
然后我有一个第二个 WP 站点 (WPSite2),它使用 WP Remote User Synch 插件 与 WPSite1 同步用户数据库。
但我不知道为什么这会干扰你提到的预期行为,因为当我登录 WPSite2,然后导航到 WPSite1 时,我也已经在 WPSite1 上登录了。
但发生的情况是,即使在 WPSite1(DiscourseConnect 提供程序)上登录后,当我点击像 https://discourse.example.com/session/sso?return_path=/g/private_group 这样的 URL 时,它会带我到 SSO WP 登录表单。
1 个赞
谢谢,Angus,
情况 2 是这种情况。
我将审查说明,但我相信一切都设置正确,因为 SSO 登录有效,问题在于登录页面未识别用户已通过身份验证。
1 个赞
嘿 @simon 和 @angus,再次感谢,我找到了问题所在。
在查看 DiscourseConnect 配置时,我注意到 DiscourseConnect URL 设置为 https://mydomain.org,然后我查看了 Discourse WP 插件上的建议,它说要使用 https://www.mydomain.org……当我更新为 www 后,它就开始正常工作了。
谢谢。
2 个赞
system
(system)
关闭
7
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.