【发布时间】:2010-11-23 05:31:27
【问题描述】:
我对 Ruby 和 OAuth 有一些困惑。基本上,这就是我正在做的:
@oauth.get('/foo.json?page=1')
但是,由于某些我无法理解的原因,提供程序应用程序仅接收 /foo.json,而 get 参数被剥离。
我想知道我是否在这里遗漏了一些明显的东西。
【问题讨论】:
标签: ruby oauth oauth-ruby
我对 Ruby 和 OAuth 有一些困惑。基本上,这就是我正在做的:
@oauth.get('/foo.json?page=1')
但是,由于某些我无法理解的原因,提供程序应用程序仅接收 /foo.json,而 get 参数被剥离。
我想知道我是否在这里遗漏了一些明显的东西。
【问题讨论】:
标签: ruby oauth oauth-ruby
对于 OAuth 1.0a / RFC 5849,您可能会发现我的 Signet OAuth 实现比 oauth gem 更容易使用。 Documentation 应该非常直截了当。 OAuth 2.0 支持正在进行中,即将推出。
但是,在您的具体情况下,oauth gem 的设计存在问题。 get 函数的第一个参数是路径。不是完整的请求 URI。他们显然假设没有人会使用该特定方法使用查询参数?我的猜测是,这里的基本原理是,由于必须对查询参数进行签名,因此可靠地解析请求 URI 并将参数合并到其中比他们想要做的工作更多?
向该库的作者致歉,我的建议是简单地避免使用它。在我看来,它的设计真的很糟糕。对于某些事情来说,这是一个足够好的实现,但是如果您正在使用的 API 没有使用 Ruby 的相应 OAuth 服务器,我认为它做得不是很好。
【讨论】: