5

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

没有用户——它是一个应用到应用风格的 web 服务(更像是亚马逊服务而不是 facebook),所以我想使用两条腿的 OAuth 方法来实现它。

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

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

...但它的构建期望三足(网络重定向流)oauth。

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

4

2 回答 2

8

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

class ApiController < ApplicationController

    include OAuth::Controllers::ApplicationControllerMethods

    oauthenticate :strategies => :two_legged, :interactive => false

    # ...

end
于 2011-02-28T17:23:36.600 回答
5

目前我不知道 oauth-plugin 的任何替代品,尽管它肯定已经在使用中,并且已经成熟,可以替代。我的建议是从 oauth-plugin 生成 oauth 服务器,然后从插件中提取依赖项(这只是几个模块的方法)并丢弃插件。然后根据您的需要调整一切。2-legged oauth 应该不是什么大问题,因为无论如何它都比 3-legged 更简单,而且我的感觉是 oauth-plugin 现在如果不进行重大修改就无法使用。

无论如何,OAuth 的精髓早已被提取到基础 oauth gem 中,因此 oauth-plugin 有点悬而未决。该架构对您使用的身份验证系统做出了一些严厉的假设,并且生成的代码已经过时。所以对我来说,oauth-plugin 更像是一个如何连接所有东西的例子,而不是大多数网站想要开箱即用的东西。

于 2010-05-05T17:48:15.140 回答