Rails两腿OAuth提供商?
-
03-10-2019 - |
题
我有一个Rails 2.3.5应用,我希望保护API。
没有用户 - 它是应用程序样式Web服务的应用程序(更像是亚马逊服务而不是Facebook),因此我想使用两腿OAuth方法实现它。
我一直在尝试将OAuth-Plugin服务器实现作为开始:
http://github.com/pelle/oauth-plugin
...但是它是构建的,期望三足(Web重定向流)OAuth。
在我更深入地进行更改之前,我想看看是否有一种更简单的方法,或者有人是否有更好的方法可以使Rails应用程序实现为两足的Oauth提供商。
解决方案
以前,唯一的好答案是在Oauth-Plugin中侵犯以获取OAuth相互作用的这一子集。从那时起,对OAuth-Plugin进行了重构,现在您可以直接使用它,只需在控制器中添加正确的身份验证过滤器:
class ApiController < ApplicationController
include OAuth::Controllers::ApplicationControllerMethods
oauthenticate :strategies => :two_legged, :interactive => false
# ...
end
其他提示
我目前还不知道Oauth-Plugin的任何替代方法,尽管它肯定会长时间牙齿越来越长,并且已经成熟了。我的建议是从OAuth-Plugin生成OAuth服务器,然后从插件中提取依赖项(仅是几个模块的方法)并丢弃插件。然后调整一切满足您的需求。 2腿的Oauth不应该是一个大问题,因为无论如何它比三足动物要简单,而且我的感觉是,无论如何,如今,如果没有重大修改,那么如今无法使用。
无论如何,Oauth的肉长期以来一直被提取到Oauth宝石中,因此Oauth-Plugin陷入困境。该体系结构对您正在使用的身份验证系统进行了一些沉重的假设,并且生成的代码已日期。因此,对我来说,Oauth-Plugin更多地是如何将所有内容连接起来的示例,而不是大多数站点想要使用的东西。
不隶属于 StackOverflow