【问题标题】:omniauth vs. oauth-pluginomn​​iauth 与 oauth-plugin
【发布时间】:2011-10-06 15:10:25
【问题描述】:

我正在尝试找出omniauth (https://github.com/intridea/omniauth) 和oauth-plugin - (https://github.com/pelle/oauth-plugin) 之间的区别

我只是在寻找一种方法来允许我的用户在我的应用程序中使用(Twitter、Facebook 等)进行身份验证。

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

【问题讨论】:

    标签: ruby-on-rails facebook authentication twitter omniauth


    【解决方案1】:

    我不得不不同意之前的答案。

    oauth-plugin

    一个用于在 Rails 应用程序中实现 OAuth Providers 和 Consumers 的插件。 1

    它提供了两个生成器(一个用于实现 OAuth 提供者,一个用于消费者),用于创建模型、视图和控制器。控制器的工作方式是它们是 gem 中定义的控制器的子类。它与 Rails 紧密相连,只能进行 OAuth。

    另一方面,omniauth 是一个模块化的、与框架无关的库,允许您通过多个提供者提供身份验证。

    具体而言,这意味着您设置了两个端点(/auth/:provider/auth/:provider/callback),让您的用户通过提供者进行身份验证,并接收带有用户信息的哈希作为回报。

    TL;DR

    如果您只需要通过 Facebook/Twitter/OAuth/etc 提供身份验证(即您想成为 OAuth消费者),那么omniauth 肯定更轻量级。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 如果您只需要 OAuth,则无需完整的 omniauth gem:这里有 oa-oauth
      猜你喜欢
      • 2012-01-06
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多