这篇帖子讨论的是一个目前并不存在但我希望亲自实现的功能。不过,我目前还不清楚这需要多少工作量,提出这个问题的目的是想弄清楚具体需要做哪些事情。
一些背景信息:我们正在开发一种无密码身份验证解决方案,网址是 https://trykno.com/。该方案以服务的形式运行,这意味着使用该服务的网站所有者无需处理安全发送邮件或存储任何密钥和个人身份信息的问题。
我们非常希望为该项目建立一个论坛,并打算使用 Discourse。
但是,我们需要将身份验证机制替换为 Kno。
问题如下:
- Discourse 中的身份验证系统是否支持插件化?
- 是否存在任何硬性假设,认为用户必须拥有电子邮件地址?
- 前端框架是什么?(我在 Gemfile 中看到了 ember-rails,但在 package.json 中却没有看到任何与 Ember 相关的引用)
如果这些问题显得过于基础,敬请见谅。我并非 Ruby 开发者,任何能帮助我理解问题的线索都弥足珍贵。谢谢!
david
(David Taylor)
2
我想你指的是“Discourse”吧
是的,它支持插件化。你可以 开发一个认证插件,或者使用 原生 SSO 系统。
是的,在 Discourse 中每个用户都必须拥有电子邮件。你 可以 提供无效的电子邮件(以 .invalid 结尾),但我们不建议这样做。
是 Ember。但对于认证插件来说,你很可能不需要接触前端部分。
6 个赞
啊,真尴尬,我会更新的。
这是一个功能:使用 Kno 时,你并不需要知道用户的电子邮件,尽管也可以请求获取。
2 个赞
pfaffman
(Jay Pfaffman)
4
目前可以不使用密码,仅通过发送链接的方式登录。
如果您的目标是为 kno 进行开发,您可能希望将其开发为一个 OAuth 服务器。这样,人们就可以将其作为多个认证源之一使用,而 SSO 则是唯一的认证方式。参见 Discourse OAuth2 Basic
2 个赞
我看到有发送链接的可能性,但 Kno 提供了更多功能,例如在通过一次性确认邮箱后,支持通过 WebAuthn 进行设备认证。
不幸的是,作为 OAuth 服务器进行开发无法满足我们的需求。(我或许应该在 FAQ 中写一段说明原因,但归根结底是因为 Kno 允许你使用另一台设备在某个设备上进行认证)。
进一步研究后,我认为通过实现一个针对 Discourse 的 SSO 解决方案,应该能够构建出一个可行的初版。
1 个赞
是否可以使用一个 OAuth 提供商,并禁用所有其他类型的身份验证?
在这种情况下,如果点击登录能自动启动认证流程(即无需打开登录弹窗并让用户选择提供商)会更好。
你或许可以解决那个问题。
但何必呢?因为一旦用户登录,他们几乎不会再看到那个对话框。
你不如把时间花在更值得解决的其他问题上。
Falco
(Falco)
8
你试过吗?因为 Discourse 多年来一直就是这样开箱即用的 
3 个赞
哦,这太棒了。
不,我还没试过,因为我还没有为我的服务实现 OAuth 提供商。我猜在那之后,我还需要编写一个插件,因为它将是一个新的 OAuth 提供商。
我的 SSO 集成几乎完成了,所以我想现在是切换到使用 OAuth 的最佳时机。
1 个赞