【问题标题】:Issues POSTing XML to OAuth and Signature Invalid with Ruby OAuth Gem使用 Ruby OAuth Gem 将 XML 发布到 OAuth 和签名无效的问题
【发布时间】:2011-01-24 02:54:20
【问题描述】:

[来自 OAuth Ruby Google 小组的交叉发布。如果你不能帮助我,别担心]

我正在与TripIt's OAuth API 集成一个项目 并且遇到了一个奇怪的问题。

我验证良好,我存储和检索给定的令牌/秘密 用户没有问题,我什至可以向多个 使用 gem 的服务。但是当我尝试使用我需要的一项服务时 POST,我收到 401“无效签名”响应。

也许我不明白如何将数据传递给 AccessToken 的 post 方法,所以这是我的代码示例:

xml = <<-XML
<Request>
  <Trip>
    <start_date>2008-12-09</start_date>
    <end_date>2008-12-27</end_date>
    <primary_location>New York, NY</primary_location>
  </Trip>
</Request>
XML`

response = access_token.post('/v1/create', {:xml => xml},
{'Content-Type' => 'application/x-www-form-urlencoded'})

我已经尝试过这个,有没有提前转义 xml 字符串。 TripIt 的人似乎认为 xml 参数可能不是 被包含在 signature_base_string 中,但是当我输出它时 (来自 lib/signature/base.rb)我明白了:

POST&https%3A%2F%2Fapi.tripit.com%2Fv1%2Fcreate&oauth_consumer_key %3D%26oauth_nonce %3Djs73Y9caeuffpmPVc6lqxhlFN3Qpj7OhLcfBTYv8Ww%26oauth_signature_method %3DHMAC-SHA1%26oauth_timestamp%3D1252011612%26oauth_token %3D%26oauth_version%3D1.0%26xml%3D%25253CRequest%25253E %25250A%252520%252520%25253CTrip%25253E%25250A %252520%252520%252520%252520%25253Cstart_date%25253E2008-12-09%25253C %252Fstart_date%25253E%25250A %252520%252520%252520%252520%25253Cend_date%25253E2008-12-27%25253C %252Fend_date%25253E%25250A %252520%252520%252520%252520%25253Cprimary_location%25253E新 %252520York%252C%252520NY%25253C%252Fprimary_location%25253E%25250A %252520%252520%25253C%252Ftrip%25253E%25250A%25253C%252FRequest%25253E %25250A

这对我来说似乎是正确的。

我输出签名(来自同一个文件)并且输出不匹配 lib/client/ 中 Auth 标头的 oauth_signature 参数 net_http.rb。它已在 auth 标头中进行了 URL 编码。这是 正确的?

有人知道宝石是否损坏/是否有修复?我发现很难追踪某些代码。

【问题讨论】:

  • 唯一错误的是一些回车。从 Web 复制/粘贴显然不是演示 API 的方法!感谢您的回复!关于丢失的位,我认为 Markdown 可能从我的代码中删除了一些尖括号。无论如何,现在一切正常。
  • 为什么你的 xml 三重 url 编码?

标签: ruby authentication rubygems oauth


【解决方案1】:

您的 oauth_token 为空。不熟悉协议,可以吗?

一旦您包含正确的令牌,请记住在签名中使用 token_secret。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    相关资源
    最近更新 更多