kforr
(Kel)
1
大家好,
我是 Discourse 的新手 
我刚刚在 Azure 上搭建好了 Discourse。
关于登录功能,我希望论坛仅允许通过 Facebook 账号、Google 账号或 Apple ID 登录。(我不希望允许用户通过电子邮件地址注册)
第一个问题是:这是否可行?
我查看了一些帖子,但有点困惑……抱歉。
这篇帖子介绍了如何配置 Facebook 登录:
这篇帖子介绍了如何配置 Google 登录:
而这篇来自 Sam 的帖子涵盖了所有 OAuth 方式,是官方推荐的方法:
哎呀,我只能放两个链接,这是官方链接:DiscourseConnect - Discourse 官方单点登录 (SSO)
第二个问题是:如果我只希望支持 Facebook、Google 和 Apple ID,我应该遵循哪一种方案?
第三个问题是:如果我未来想开放通过电子邮件地址注册,这样可以吗?需要做些什么?
最后一个问题是:(这可能属于另一个话题)我希望我的网站和 Discourse 共享相同的登录系统(我尚未构建网站,但将使用 ASP .NET C# 开发)。我的网站未来也只允许使用相同的 Facebook、Google、Apple 登录方式,可能还会支持电子邮件。Discourse 如何读取我的数据库?
非常感谢大家的帮助!! 
Kel
david
(David Taylor)
2
是的,你需要禁用站点设置中的 enable local logins(启用本地登录)。
你应该遵循 Facebook、Google 和 Apple 的官方说明。
可以的,你只需重新开启 enable local logins(启用本地登录)即可。
如果你希望在自己的站点上进行身份验证,需要选择一种协议。最常用的是 OAuth2 或 OpenID Connect。你也可以使用 https://meta.discourse.org/t/discourseconnect-official-single-sign-on-for-discourse-sso/13045。不过,这一切都需要在你的应用程序中进行大量的开发工作才能实现。
kforr
(Kel)
3
非常感谢,David。
作为 OAuth2 的新手,我想确认一下我的理解是否正确,即我接下来要构建的内容:
由于网站将作为入口点,我会在我的网站上实现 OAuth2,仅支持 Google、Facebook 和 Apple 登录。当用户点击我网站上的“论坛”链接时,会被重定向到 Discourse。因此,在 Discourse 端,我只需要选择使用 OAuth2 协议即可,这样用户访问 Discourse 论坛时就已经处于登录状态,对吗?
最后一个问题:我已在 Azure 上托管了 Discourse。如果我将我的网站托管在 AWS 或另一个 Azure 账户中,是否可行?(它们将使用相同的域名,Discourse 将作为子域名,例如 forum.example.com)
非常感谢您的帮助!
Kel
david
(David Taylor)
4
如果您的网站负责处理 Facebook/Google/Apple 的身份验证,那么指向 Discourse 的链接确实可以仅使用 OAuth2。
没问题,各个组件托管在何处并不重要。