2

你好,对不起我的英语。我正在使用 oauth 0.4.4 和 oauth-plugin 0.4.0.pre4 gems。当我尝试以 OAuth 提供者身份访问我的应用程序时

     8 消费者 = OAuth::Consumer.new consumer_key, consumer_secret,
      9 :site => 'http://localhost:3000/', :scheme => :body
     10
     11 request_token = 消费者.get_request_token
消费者引发异常
    /home/lain/.rvm/gems/ruby-1.9.2-p136/gems/oauth-0.4.4/lib/oauth/consumer.rb:217:in get_request_token'token_request': 401 Unauthorized  (OAuth::Unauthorized)
        from /home/lain/.rvm/gems/ruby-1.9.2-p136/gems/oauth-0.4.4/lib/oauth/consumer.rb:139:in
        来自 private/test_app.rb:11:in `'

此请求的 Rails 日志是

在 2011-02-22 21:17:54 +0300 开始 POST "/oauth/request_token" 为 127.0.0.1
  由 OauthController#request_token 处理为 */*
  参数: {"oauth_body_hash"=>"2jmj7l5rSw0yVb/vlWAYkK/YBwk=", "oauth_callback"=>"oob", "oauth_consumer_key"=>"GAdP34UY4zunPwhm9hePODITteHxplQ3oShNPuKs", "oauth_signature_method"=>"stamp-SHA1"time >"1298398673", "oauth_nonce"=>"aDRQijPyYJYODaqdZvpD2RMrReixMVcWb0zYSpjI", "oauth_version"=>"1.0", "oauth_signature"=>"0kYXwbPnNZK7JLpVVtnLs+H5klQ="}
渲染文本模板(0.0ms)
10ms 内完成 401 Unauthorized (查看: 2.7ms | ActiveRecord: 0.0ms)

当我尝试使用 curl 模拟这个请求时,我会得到

$ curl 'http://127.0.0.1:3000/oauth/request_token' -d 'oauth_body_hash=2jmj7l5rSw0yVb%2fvlWAYkK%2fYBwk%3d&oauth_callback=oob&oauth_consumer_key=GAdP34UY4zunPwhm9hePODITteHxplQ3oShNPuKs&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1298398673&oauth_nonce=aDRQijPyYJYODaqdZvpD2RMrReixMVcWb0zYSpjI&oauth_version=1.0&oauth_signature=0kYXwbPnNZK7JLpVVtnLs%2bH5klQ%3d '-v
* 即将 connect() 到 127.0.0.1 端口 3000 (#0)
* 尝试 127.0.0.1... 已连接
* 连接到 127.0.0.1 (127.0.0.1) 端口 3000 (#0)
> POST /oauth/request_token HTTP/1.1
> 用户代理:curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
> 主机:127.0.0.1:3000
> 接受:*/*
> 内容长度:309
> 内容类型:application/x-www-form-urlencoded
>
< HTTP/1.1 401 未经授权
< 访问控制允许来源:*
< 内容类型:text/html;字符集=utf-8
<缓存控制:无缓存
< X-Ua 兼容:IE=Edge
< X 运行时:1.245471
< 服务器:WEBrick/1.3.1 (Ruby/1.9.2/2010-12-25)
< 日期:格林威治标准时间 2011 年 2 月 22 日星期二 23:57:49
< 内容长度:21
< 连接:保持活动状态
<
* 到主机 127.0.0.1 的连接 #0 保持不变
* 关闭连接 #0
无效的 OAuth 请求

我的数据库包含一个 ClientApplication

   ruby-1.9.2-p136 :001 > ClientApplication.all.to_a
     => [#<ClientApplication_id:4d62f535e4279b2dec000001,created_at:2011-02-21 23:28:53 UTC,updated_at:2011-02-21 23:28:53 UTC,名称:“...”,url:“。 ..", support_url: nil, callback_url: nil, key: "GAdP34UY4zunPwhm9hePODITteHxplQ3oShNPuKs", secret: "EQAD5fifIuC3qtAyrkIpqAEn39rK50Az55gxbVYD", user_id: nil>]

我尝试了许多版本的 oauth 和 oauth-plugin,但我从未得到任何成功的结果。我用谷歌搜索的两个测试消费者“oauth test”向我展示了同样的结果:http: //term.ie/oauth/example/client.php http://dev.k42b3.com/index.php/oauth/consumer

我正在使用 devise 1.2.rc,但我skip_before_filter :authenticate_user!在 Application 和 Oauth 控制器中都禁用了它。

4

0 回答 0