我正在尝试使用Doorkeeper构建OAuth2提供程序,我想测试所有现有流程,但在第一次尝试时遇到困难.
我正在尝试测试授权代码流.获取授权代码一切正常,但一旦我尝试获取访问令牌就会出错.下面提到的是一些步骤.
describe 'when sends an access token request' do
let(:access_params) do
{ grant_type: 'authorization_code',
code: authorization_code,
redirect_uri: application.redirect_uri }
end
let(:access_uri) { '/oauth/token' }
before { page.driver.post access_uri, access_params }
it 'returns valid json' do
pp page.source
end
我期待json具有最终访问令牌,但我得到了这个错误.我很好地检查了客户和参数.一切似乎都很好.
{"error":"invalid_client","error_description":"Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method."}
你能帮助我理解缺少的东西吗?
谢谢
最佳答案 我终于搞定了.我错过了关于OAuth2规范的一个重要方面,客户端必须使用基本身份验证来标识自己.我解决了在帖子之前添加它的问题,并且效果很好.
before do
page.driver.browser.authorize application.uid, application.secret
page.driver.post access_uri, access_params
end