Rails双腿OAuth提供商?

我有一个带有我希望保护的API的rails 2.3.5应用程序。

没有用户 – 它是app风格webservice的应用程序(更像是亚马逊服务而不是facebook),所以我想使用两条腿的OAuth方法来实现它。

我一直在尝试使用oauth-plugin服务器实现作为开始:

http://github.com/pelle/oauth-plugin

…但它建立了期待三条腿(网络重定向流)oauth。

在我深入研究对其进行更改以支持两条腿之前,我想看看是否有更简单的方法,或者是否有人有更好的方法让rails应用程序实现成为一个两条腿的OAuth提供者。

以前,唯一的好答案是在oauth-plugin中破解以获得oauth交互的这个子集。 从那时起,oauth-plugin被重构,现在你可以直接使用它,只需向你的控制器添加正确类型的身份validationfilter:

class ApiController < ApplicationController include OAuth::Controllers::ApplicationControllerMethods oauthenticate :strategies => :two_legged, :interactive => false # ... end 

我目前还没有发现任何oauth-plugin的替代方案,尽管它肯定会长期存在并且已经成熟,可以替代。 我的建议是从oauth-plugin生成oauth服务器,然后从插件中提取依赖项(这只是几个模块的方法)并删除插件。 然后调整一切以满足您的需求。 两条腿的oauth应该不是一个大问题,因为它比三条腿更简单,而且我的感觉是oauth-plugin现在无法使用,无论如何都没有重大修改。

无论如何,OAuth的肉已被提取到基础oauthgem中,所以oauth-plugin有点处于不确定状态。 该体系结构对您正在使用的身份validation系统做了一些严厉的假设,并且生成的代码已过时。 所以对我来说,oauth-plugin更多地作为如何连接所有内容的例子,而不是大多数网站想要开箱即用的东西。