使用新的注册表单无法在 Discourse 中从 WP 创建用户

说实话,我有点不明白你描述的这个问题与你之前描述的由两个不同的WordPress注册表单引起的问题有什么关系。但我认为我仍然可以帮助你。

有一点需要明白的是,没有办法(也从来没有办法)能够即时登录到两个不同域上的两个不同服务。当看起来你已经登录到域 A 上的服务 A,然后又去访问域 B 上的服务 B 时,你也被登录了,这实际上发生的是,只有当你访问域 B 并启动登录过程时,你才通过服务 A 登录到服务 B,而不是在此之前。

还有一点需要明白的是,除了你所描述的想要将用户重定向到应用程序中需要会话的特定位置的特定场景之外,大多数用户并不关心,或者根本不会注意到有时需要点击服务 B 上的“登录”。根据我与客户在身份解决方案方面工作的经验,网站管理员通常比他们的用户对这一点更敏感。

这种情况的工作方式没有改变。当用户看起来“自动”登录时,实际上发生的是他们被重定向回 WordPress,然后在 WordPress 会话经过身份验证后,再被重定向回 Discourse。如果用户已经在 WordPress 中登录,那么这看起来就像他们“自动”登录到 Discourse,因为这个重定向会在用户无需执行任何操作的情况下发生。

你可以通过使用你已经分享的路径来触发“自动”登录,并在登录后将他们重定向到 Discourse 中的特定位置。

https://community.showprowess.com/session/sso?return_path=[any path in Discourse]

如果用户在使用此 URL 时已登录 WordPress,但尚未登录 Discourse,则会发生以下情况:

  1. Discourse 自动启动 DiscourseConnect 登录过程
  2. 用户浏览器被重定向到 WordPress
  3. 用户已登录,因此用户会自动重定向回 Discourse
  4. 如果在 1 中使用的 URL 中存在 return_path 值,用户将被重定向到该位置

从用户的角度来看,他们会看到他们的浏览器短暂加载,但他们将有效地“自动”登录到 Discourse 并被重定向到应用程序的特定部分。

请注意,如果你将站点设置 discourse connect allows all return paths 设置为 true,你实际上可以将 return_path 设置为任何 URL,甚至是单独的域。

2 个赞