0

我已经看到了一些关于在 Rails 应用程序中实现 3 步 OAuth 的问题/指南,但我只对它的客户端部分感兴趣。我正在尝试以消费者身份向 OAuth2 服务器进行身份验证。据我所知,我正在正确构建访问令牌。

@consumer = OAuth::Consumer.new(@config[:client_id], @config[:client_secret], 
{
  :site               => "http://api.server.com",
  :oauth_version      => "2.0",
  :http_method        => :post,
  :authorize_path     => "/oauth2/authorize",
  :access_token_path  => "/oauth2/token",
  :request_token_path => "/oauth2/request_token"
})
token_hash = { oauth_token: @config[:client_id], oauth_token_secret: @config[:client_secret] }
@access_token = OAuth::AccessToken.from_hash(@consumer, token_hash)

所有这些都成功了,访问令牌最终看起来像这样:

#<OAuth::AccessToken:0x007fb6f2290468 
  @token="client_id", 
  @secret="secret",
  @consumer=#<OAuth::Consumer:0x007fb6f2290800
              @key="client_id",
              @secret="secret",
              @options={:signature_method=>"HMAC-SHA1", 
                        :request_token_path=>"/outh2/request_token",
                        :authorize_path=>"/oauth2/authorize", 
                        :access_token_path=>"/oauth2/token", 
                        :proxy=>nil,
                        :scheme=>:header, 
                        :http_method=>:post, 
                        :oauth_version=>"2.0", 
                        :site=>"https://api.server.com"
                        }
            >, 
  @params={:oauth_token=>"client_id", 
           :oauth_token_secret=>"secret"
}>

问题是我使用@access_token的任何请求都会返回Forbidden错误。

任何想法我的请求的哪一部分是错误的?

4

0 回答 0