我已经看到了一些关于在 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
错误。
任何想法我的请求的哪一部分是错误的?