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