WebAuthn on Rails通过设计



我有一个RoR WebApp使用设计认证. 我偶然发现了FIDO,特别是WebAuth。现在我正试图实现WebAuthn相同的应用程序。有一个很好的宝石在Rails上实现WebAuthn在web-authn-ruby。

这个宝石虽然不使用设计。所以我想知道什么是最好的方式让设计工作与网络认证。在高层次上,我是否必须重写设计的核心功能,并纳入WebAuthn方法?还是有更好的选择?

谢谢

我联系了cedarcode.com这个维护https://github.com/cedarcode/webauthn-ruby的优秀团队。他们正在为相同的设计扩展工作,到目前为止它还不可用。所以到目前为止,似乎没有任何gem或扩展可以做到这一点。但更重要的是,该团队建议为一个完全不同的项目单独进行公关,在这个项目中,他们通过WebAuth -ruby gem在一个基于设计的场景中集成WebAuth。就是这个https://github.com/tootsuite/mastodon/pull/14466这将有助于任何有兴趣在他们的rails项目中集成WebAuth的人。

webauthn gem可以与设计集成。简而言之,你可以像往常一样实现webauthn(更多信息参见他们的README或他们的演示应用程序),然后用你自己的会话控制器覆盖设计的默认会话控制器。

在我的例子中,我在People下创建了一个会话控制器,它继承自design:

# app/controllers/people/sessions_controller.rb
class People::SessionsController < Devise::SessionsController
def new
# ...
end
def create
# ...
end
end

然后更新路由,告诉设计使用它:

# BEFORE
# devise_for :people
# AFTER
devise_for :people, controllers: {sessions: 'people/sessions'}

HoneyBadger网站上有一篇很棒的文章,介绍了更多的细节。

最新更新