使用第三方(自定义)逻辑进行身份验证

我试图编写一个插件,允许用户使用某种“自定义”逻辑登录 Discourse。
不需要用户名和密码,也许是一个密码(Pin Number)或您生成的单次令牌(One Time Token)。
我愿意编写相关逻辑,但我是 Discourse 开发的新手,所以想了解一下这是否可行。

我已经查看了大量现有的身份验证插件,它们大多只是使用现成的 Gem 配合 10 到 20 行代码即可实现功能。
这很棒,但在我的情况下,我需要完全自定义的逻辑。

我就想问问,是否有类似用户名/密码认证之类的现有示例可以参考?
或者是否有人能给我指个方向。

我的目标是利用与添加其他账户(如 Google、Facebook 等)时相同的功能。
只需添加另一个“关联”账户用于身份验证。Discourse 用户与我的“令牌”之间是一对一的关系(如果这有帮助的话)。

这是一个学习项目。我拥有一个非常活跃的 Discourse 社区,非常希望能做出贡献。

谢谢!

或许你可以使用一种提供所需身份验证类型、但通过标准协议(如 OpenID Connect)与 Discourse 通信的服务?

这种替代方法是打算与现有用户账户关联,还是某种形式的匿名授权登录?如果它与现有账户关联,那么你可能可以考虑使用外部身份服务,例如 Keycloak?据我所知,它支持 OTP(一次性密码) 以及多种其他验证方式。不过,这可能并不一定更简单。