Rails 2.3.5中oAuth2消费者和提供者功能的Gem

16

我正在寻找一个适用于 Rails 2.3.5 应用程序的 gem,以提供以下功能:

  • 我们想要使用 oAuth 2 保护我们的 API;因此需要控制器来创建访问/请求令牌和模型(客户端、令牌等)
  • 我们想要使用 Facebook 和 Twitter 等 oAuth2 服务

最好还支持 3-legged 和 2-legged 认证。

我找到了这些 gem,但它们都存在主要缺点:

  • oauth-ruby (github.com/oauth/oauth-ruby)
    • 我不确定它是否已经实现了 oauth2 机制
    • 更像是基础库,支持各种服务

  • oauth-plugin (github.com/pelle/oauth-plugin)
    • 看起来很方便,但 oauth2 只在 rails3 分支中受支持 :(

  • oauth2 (github.com/intridea/oauth2)
    • 仅用于 oAuth2 消费者/没有提供功能

  • oauth2-ruby (github.com/aflatter/oauth2-ruby/tree/)
    • 最后提交时间:16.07.10 "破坏性提交" :(
    • 基于 oAuth2 Draft 00(旧!)

  • oauth2-provider (github.com/ThoughtWorksStudios/oauth2_provider)
    • 最后提交时间:21.10.10 - 不错
    • 仅提供提供者功能 :(
    • 基于 oAuth2 Draft 09(相当新)

有人用这些 gem 中的一个或组合实现了这些要求吗?你能给我提供一些方向吗?

非常感谢任何帮助!


今天我从oauth-plugin作者pelle那里收到了回复。我问他是否也会在主干分支中提供oauth2支持(不仅仅是rails3分支)。他说:“它应该可以在Rails 2.3.x中很好地工作,但我希望听到关于它的反馈。我真的应该重命名该分支。”!我会尝试一下!http://github.com/pelle/oauth-plugin/issues#issue/19 - Makibo
我们实现了一个自定义的fork,基于oauth-plugin的rails3分支,它运行得非常好。 - Makibo
我仍然在before_filter :login_or_oauth_required和oauthenticate回调上遇到问题,你是如何解决的? - Goz
@gozali,你遇到了哪些具体问题?我们只使用oauthenticate(不再使用login_or_oauth_required);当选项“interactive”设置为true时,它将像login_or_oauth_required一样运行。 - Makibo
@gozali 小补充:一旦获得令牌,必须将其作为额外的查询参数附加到每个请求中以保护端点,例如:example.com/oauth_protected_resource?access_token=VALID_ACCESS_TOKEN - Makibo
显示剩余2条评论
3个回答

1

1

1

我已经评估了这个主题中列出的大多数宝石,而在我的(有偏见的)意见中,devise_oauth2_providable宝石是用于Rails应用程序的最佳oauth2提供者后端。它的目标是为现有的Rails应用程序提供最简单的集成,我建议您仔细查看一下。

https://github.com/socialcast/devise_oauth2_providable

由于它们拥有不同的职责,因此您可以混合和匹配不同的宝石来处理oauth2消费者。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接