我将启用 DiscourseConnect Provider,有几个问题:
-
启用此功能后,我是否仍然可以模拟用户并拥有 Discourse 内的所有用户管理控制权限?
-
对于那些已存在于 Discourse 但不存在于 WP 的用户,会发生什么?他们的账户会受到影响吗?他们将使用什么凭据登录,因为他们实际上并不存在于 WP。
-
如何在我的 Discourse 网站上添加一个注册按钮,在用户在 WP 上注册后将他们重定向回 Discourse?
-
启用此设置后,用户是否仍然可以仅在 Discourse 上注册?
谢谢!
pfaffman
(Jay Pfaffman)
2
是的,除了与创建用户(如邀请)相关的权限。
如果他们可以使用相同的地址登录 WP,我认为你就可以了。否则,他们不存在。
登录按钮会巧妙地将他们带到 WP 网站
不可以。
2 个赞
你这是什么意思?
所以我刚刚测试了这个。我用了一个存在于Discourse但不存在于Wordpress上的账户,并尝试登录,WP给出了以下错误:
我想从WP的角度来看这是有道理的,因为用户实际上并不存在于WP上。
问题是:启用DiscourseConnect Provider是否意味着那些未在我的WP上注册的现有Discourse用户将无法再登录?
有没有解决方案?
pfaffman
(Jay Pfaffman)
5
点击登录按钮后,您将被带到 WP。
是的。您需要在 WordPress 上创建这些用户。
我找到了这个回复,它扩展了您提出的建议:
但是,如何在不影响他们当前 Discourse 登录凭据的情况下将他们导入 WP?
有没有办法在不重置用户登录信息甚至不通知他们的情况下完成此操作,以实现无缝切换?
pfaffman
(Jay Pfaffman)
7
我怀疑有。有一个 Discourse 插件可以允许从 WordPress 迁移密码,但我怀疑是否有反向的插件。你将不得不让所有人都重置密码。
在你切换到使用 WP 登录之前,WordPress 上的账户不会影响 Discourse。
1 个赞
我有一个想法。
如果我将 WordPress 启用为 Discourse 客户端,然后创建一个自动化脚本,该脚本将:
-
模拟 Discourse 上的用户帐户,以便自动化以该用户身份登录
-
- 导航到 WordPress 并单击“使用 Discourse 登录”按钮。
-
对 Discourse 上的所有用户重复此操作。大约 2k
这个想法是,第 2 步将强制 WP 使用相同的凭据为 Discourse 用户创建帐户。我还假设,当我以用户身份登录并模拟他们时,“使用 Discourse 登录”按钮将自动工作,而无需询问密码。
完成此操作后,所有用户是否都会在 WP 中创建帐户,然后我是否可以将 WP 切换到 Discourse 提供商?
理论上似乎说得通,但我想听听您关于这是否可行的反馈。
pfaffman
(Jay Pfaffman)
9
对。如果用户不存在于WordPress中,他们就无法登录WordPress。
你不需要冒充任何人。
如果你想让WordPress成为你的身份验证来源
- 在WordPress中创建所有用户。确保WP中的电子邮件地址与Discourse中的匹配
- 将Discourse切换为使用WP作为DiscourseConnect主机
你将不得不让人在WordPress中重置密码。
将身份验证转移到WordPress会解决什么问题?我认为你会后悔这样做的。
我们在 WP 网站上有多个高级会员课程和活动,我希望在 WP 和 Discourse 之间实现无缝集成。
这样做有什么缺点?为什么您会这么说……
pfaffman
(Jay Pfaffman)
11
好的。那么,如果您在 WordPress 中有 Discourse 用户,那么您需要让所有这些用户都在 WordPress 中拥有一个账户。如果他们使用相同的电子邮件地址创建账户,那么他们在登录时应该会与其 Discourse 用户相关联。
我不知道还能说什么。
1 个赞
simon
12
正如 Jay 所指出的,实现这一目标的最佳方法是将您的 WordPress 网站配置为 Discourse 的 SSO 提供商。有关如何设置的详细信息,请参阅此主题:https://meta.discourse.org/t/configure-single-sign-on-sso-with-wp-discourse-and-discourseconnect/223494。
将 WordPress 配置为 DiscourseConnect 提供商后,尚未在您的 WordPress 网站上拥有帐户的 Discourse 用户在访问您的 Discourse 网站之前,需要先在 WordPress 上注册。您应该在 Discourse 网站上添加一条消息,告知用户有关此更改的信息。在消息中,鼓励用户使用与他们在 Discourse 上使用的电子邮件地址相同的地址在 WordPress 上注册。这样,当他们通过 WordPress 首次重新登录 Discourse 时,将登录到他们现有的 Discourse 帐户。
如果用户不在 WordPress 上使用他们在 Discourse 上使用的电子邮件地址注册,当他们通过 WordPress 首次重新登录 Discourse 时,将为他们创建一个新帐户。您可以逐个案例地通过将旧的 Discourse 帐户合并到新的 Discourse 帐户来解决此问题。这可以从用户的 Discourse 管理页面进行。
需要注意的是,用户登录到他们现有的 Discourse 帐户的行为只有在电子邮件地址在 WordPress 端被标记为“有效”时才会起作用。如果您使用默认的 WordPress 注册系统,这将不会出现任何问题。如果您使用的是插件添加的自定义注册页面,则用户电子邮件地址很可能不会被标记为“有效”。有关如何解决此问题的详细信息,请参阅:Configure single sign-on (SSO) with WP Discourse and DiscourseConnect
4 个赞
我们该如何知道?
这是我的注册页面:Log In ‹ Project Van Life — WordPress
由于我的主题,它的设计有所不同,但我知道我们没有专门用于登录的插件。
simon
14
看起来您正在使用默认的WordPress注册系统。我之所以这样假设,是因为您的登录页面位于wp-login.php。这意味着WP Discourse插件会将用户的电子邮件地址标记为已验证。
3 个赞
Sami_Syed
(Sami Syed)
15
关于此事的另一个问题。
设置 Discourse Connect Provider 后,Discourse 是否仍会发送电子邮件,Discourse 是否仍会向 WP 用户发送电子邮件通知?
如果某人是 WP 用户但从未访问过论坛,与某人是 WP 用户但正在访问论坛,这两种情况是如何运作的?
simon
16
是的,Discourse 仍然会发送电子邮件。使用 Discourse Connect 作为身份验证系统不会影响从 Discourse 发送的电子邮件通知。
您的 WordPress 网站上从未访问过 Discourse 的用户不被视为 Discourse 用户。他们不会收到来自 Discourse 的任何电子邮件通知。唯一的例外是,如果您启用了 WP Discourse 的“登录时创建或同步 Discourse 用户”设置:
如果启用了该设置,当用户登录您的 WordPress 网站时,将自动为其创建 Discourse 帐户。在这种情况下,如果用户已登录 WordPress 但从未访问过您的 Discourse 网站,他们将开始收到您 Discourse 网站的每周摘要电子邮件。
3 个赞
Sami_Syed
(Sami Syed)
17
所以我刚刚测试了一下,似乎并非如此。如何在不手动操作的情况下,确保用户的电子邮件现在已得到验证?
另外,新用户如何注册并同时验证他们的电子邮件?目前,我们会将他们重定向到 wp-login.php,但该页面没有注册选项,只有登录选项。
我可以在论坛上创建一个新的按钮,上面写着“注册”,然后将他们重定向到 WP 中的自定义注册页面,但这会带来一个问题:
除此之外,在他们注册后,我希望将他们重定向回论坛并确保他们已登录。
Sami_Syed
(Sami Syed)
18
我也在探索另一种方法,我相信这会让用户更容易,并且很想听听您的想法。
如果我们手动将所有 Discourse 用户导出并导入到 WordPress 中,会怎么样?此过程将:
- 为 Discourse 中的每个用户创建一个 WordPress 帐户
- 将该帐户链接到他们的论坛个人资料
- 将他们的电子邮件地址标记为已在 WP 中验证。由于他们已经是 Discourse 用户,我们可以假设他们已获得验证。
- 向他们发送一封电子邮件,告诉他们重置他们的论坛密码(因为第 1 步会重置它)
这样,他们就不必为自己创建新帐户,只需重置密码即可。
此过程并未解决我在上面一个回复中强调的疑问/问题。
simon
19
您可以通过在启用 Discourse Connect 后在 WordPress 上创建新帐户来确认电子邮件地址是否已验证。如果电子邮件地址已验证,您将在用户偏好设置页面的底部看到确认信息。您也可以在此处手动将电子邮件地址标记为已验证:
假设电子邮件地址未经验证,有关用户创建帐户时如何将电子邮件地址标记为已验证的说明在此处:Configure single sign-on (SSO) with WP Discourse and DiscourseConnect WordPress 网站没有这样做,您也可以添加一些代码,以便在用户注册您的某个课程后,将用户的电子邮件地址标记为已验证。设置此功能可能需要开发人员的帮助。
我在您的网站上看到两个单独的登录页面:
最简单的方法是解决此问题,使网站上只有一个登录页面,并且该页面包含指向网站注册页面的有效链接。我怀疑这可以通过添加登录表单的插件的设置页面来完成。请注意,如果您选择使用 https://projectvanlife.com/login/ 处的登录页面,则需要在 WP Discourse 设置中将 /login 添加到“您的登录页面路径”:
我认为这可能会让用户感到困惑。更简单的方法是只需在您的 Discourse 论坛上添加一个链接,该链接的结构使用户在点击链接时自动登录 Discourse。以下是有关如何创建链接的详细信息:https://meta.discourse.org/t/create-a-discourseconnect-login-link/109290。在您的网站上启用 DiscourseConnect 后,您也应该以这种方式构建此链接:
这是可能的。有关如何操作的一些详细信息在此处:How to import Discourse users to WordPress? - #2 by simon
创建一个横幅主题在您的“员工”类别中,其中包含有关更改的详细信息,会容易得多。屏幕截图中的措辞可以稍作改进:
完成更改后,更新横幅主题,告知用户如果他们在登录时遇到任何问题,请联系管理员。
我刚想到一些可能有帮助的事情。在您将 WordPress 网站设置为 DiscourseConnect 提供商之前,您可以暂时将您的 Discourse 网站配置为您_网站_的 DiscourseConnect 提供商。如果您这样做,您可以将以下内容添加到横幅主题中:
这是我使用的完整链接:
<a>在 (您的网站名称) 上创建帐户</a>
点击它将在 WordPress 上注册一个新帐户,并将用户重定向到他们的 WordPress 个人资料页面,在那里他们可以设置密码。请注意,在您的情况下,您需要将链接中的两个 http://wp-discourse.test 替换为 https://projectvanlife.com/
4 个赞
Sami_Syed
(Sami Syed)
20
@simon 非常感谢您如此详尽的回复,这非常有帮助!
这是一个很棒的主意!
如果我们模仿每个用户并为他们执行此操作,会产生什么问题吗?
这种方法在我们切换到 WordPress 作为 Discourse Connect 提供商后,是否也会保持他们相同的登录密码?
3 个赞
simon
21
我认为这不会引起任何问题。
将 WordPress 设置为 DiscourseConnect 提供商不会更改用户的 WordPress 密码。
3 个赞