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