omn​​iauth与oauth-plugin

Jim*_*nes 10 authentication twitter facebook ruby-on-rails omniauth

我想弄清楚omniauth(https://github.com/intridea/omniauth)和oauth-plugin 之间的区别- (https://github.com/pelle/oauth-plugin)

我只是想找一种方法让我的用户在我的应用程序中进行身份验证(Twitter,Facebook等).

我知道omniauth提供了这个,但是我正在运行rails 2.3.10,我不相信omniauth支持.我可以使用oauth-plugin吗?它似乎也有很少的依赖.任何想法都表示赞赏.

asy*_*ric 24

我不同意以前的答案.

oauth-plugin

用于在Rails应用程序中实现OAuth 提供程序和使用者的插件.1

它提供了两个生成器(一个用于实现OAuth提供程序,一个用于消费者),它们创建模型,视图和控制器.控制器的工作方式是它们是gem中定义的控制器的子类.它与Rails相关联,并且只能执行OAuth.

omniauth,在另一方面,是一个模块化的,框架无关库,允许您通过供应商的大量提供认证.

具体来说,这意味着您设置了两个端点(/auth/:provider/auth/:provider/callback),让您的用户对提供程序进行身份验证,并接收带有用户信息的哈希值.

TL; DR

如果您只需要通过Facebook/Twitter/OAuth/etc提供身份验证(即您希望成为OAuth 使用者),那么omniauth肯定会更轻量级.

如果您想运行OAuth提供程序,oauth-plugin可能会更直接,但在我看来,它往往会更加臃肿,因为它会在您的应用程序中注入大量的样板代码.


rho*_*son 3

Omniauth 是一个超级授权宝石,让您可以访问整个 Web 服务列表(Twitter、Facebook、Foursquare、Gowalla、Netflix、YouTube 等)的 OAuth 流程,因此您可以为每个服务调用特定函数,快速设置。

您提到的 oauth-plugin 似乎只是为您设置了 OAuth 常规设置,并且您必须自己为每个服务进行 API 连接。更轻量级,因此,例如,如果您只需要 Twitter 服务,这可能是一个更好的方法,尽管我仍然可能会查看 Omniauth 以了解它的性能消耗有多大,因为它会很大整体上更容易使用。

  • 如果您想要的只是 OAuth,则不需要完整的“omniauth” gem:有“oa-oauth”。 (3认同)