我有一个带有我希望保护的API的rails 2.3.5应用程序。
没有用户 - 它是app风格webservice的应用程序(更像是亚马逊服务而不是facebook),所以我想使用两条腿的OAuth方法来实现它。
我一直在尝试使用oauth-plugin服务器实现作为开始:
http://github.com/pelle/oauth-plugin
...但它是建立期待三条腿(网络重定向流)oauth。
在我深入挖掘它以支持两条腿之前,我想看看是否有一种更简单的方法,或者是否有人有更好的方法让rails应用程序实现成为一个两条腿的OAuth提供者。
答案 0 :(得分:8)
以前,唯一的好答案是在oauth-plugin中破解以获得oauth交互的这个子集。从那时起,oauth-plugin被重构,现在你可以直接使用它,只需向你的控制器添加正确类型的身份验证过滤器:
class ApiController < ApplicationController
include OAuth::Controllers::ApplicationControllerMethods
oauthenticate :strategies => :two_legged, :interactive => false
# ...
end
答案 1 :(得分:5)
我目前还没有发现任何oauth-plugin的替代方案,尽管它确实已经很久了,并且已经成熟了。我的建议是从oauth-plugin生成oauth服务器,然后从插件中提取依赖项(这只是几个模块的方法)并删除插件。然后调整一切以满足您的需求。两条腿的oauth应该不是一个大问题,因为它比三条腿更简单,而且我的感觉是oauth-plugin现在无法使用而且没有任何重大修改。
无论如何,OAuth的肉已被提取到基础oauth宝石中,所以oauth-plugin有点不稳定。该体系结构对您正在使用的身份验证系统做了一些严厉的假设,并且生成的代码已过时。所以对我来说,oauth-plugin更多地作为如何连接所有内容的例子而不是大多数网站想要开箱即用的东西。