“部分”SSO是否可行?

我不是开发者,甚至不知道该如何搜索以找到我问题的答案。我目前正在试用 Discourse,用户登录方式一直让我很纠结。

在试用初期,我确信试用结束后我会采用单点登录(SSO)方案,但现在我有些犹豫。启用 SSO 似乎会让我失去一些 Discourse 的不错功能(例如邀请功能),而我不确定在这种情况下它的优势是否值得。

是否可以让我的论坛同时使用 Discourse 内置账户和我自己网站的账户?就像设置“或通过 Facebook/Google/Apple 登录”选项那样?

您知道当用户尝试登录或创建账户时,他们会看到电子邮件/密码输入框,而右侧会提供通过 Facebook、Google 等登录的选项吗?我能否简单地把我自己网站的账户作为右侧的其中一个选项?

这样,如果用户只想使用我主网站的登录方式,而不想专门为论坛创建新账户,他们也可以这样做,但并非强制要求。

这可行吗?这样做是否明智?也就是说,是否有理由我不应该走这条路?谢谢!

这取决于你对“SSO”的具体含义:

在这方面有个好消息——我们最近为 DiscourseConnect 添加了邀请支持。

至于其他登录方式:

这些更改已在最新版本的 Discourse 中上线。

您可以在服务器上实现 OAuth2,使其像 Google、GitHub 及其他类似服务一样运行。(或者请他人代劳,毕竟您并非开发者。)

谢谢!能否请你提供相关文档的链接?

这两个插件可以在以下地址找到:

我很高兴看到 SSO 与邀请功能之间的兼容性特性,但在我这边似乎无法正常工作。

我的主站运行在 WordPress 上,并使用 WP Discourse 插件将两个应用集成在一起。我还有一个注册表单,在 WordPress 上进行邮箱验证,并且我编写了自定义代码,以防止 Discourse 在用户注册时发送重复的验证邮件。我已在 Discourse 中启用了 must_approve_users 选项,以防止任何人在未获批准的情况下访问社区。

我按照以下步骤操作,但最终用户仍未获得批准。和之前一样。

  1. 通过邮箱地址邀请用户
  2. 用户打开邀请邮件并点击链接
  3. 用户被重定向到 Discourse 的未登录页面,显示欢迎信息和继续操作的 CTA 按钮
  4. 点击 CTA 后,用户被带到 WordPress 的登录页面
  5. 由于该用户尚未在 WordPress 注册,我不得不为其创建新账号——我认为这是合理的,因为 WordPress 并不知道该用户是由 Discourse 邀请的
  6. 注册完成后,我收到来自 WordPress 的确认邮件。我点击该邮件中的链接,被重定向到 WordPress 的登录页面
  7. 在 WordPress 登录后,我尝试访问社区,但无法进入
  8. 我进入管理员账户检查该用户的状态,果然如我所料,状态为“待批准”。这与我发送邀请之前的情况完全相同

我遗漏了什么?是否有其他流程需要遵循?是否只能邀请已经在 WordPress 上注册的用户?希望能得到一些指导。谢谢。

我的 Discourse 版本:2.8.0.beta1