【问题标题】:Doorkeeper access token门卫访问令牌
【发布时间】:2012-07-19 22:22:20
【问题描述】:

我正在尝试使用 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."}

您能帮助我了解缺少的内容吗? 谢谢

【问题讨论】:

  • 您为什么要测试这些流程? OAuth 流程在门卫中得到了很好的测试
  • 我知道,我一直在很好地挖掘代码。我仍然必须检查这些功能,因为我的一些逻辑可能会破坏它们。我认为当你得到一个为你做非常重要的事情的引擎时,为主要使用场景构建一些集成测试是一个好习惯

标签: ruby-on-rails-3 oauth-2.0 oauth-provider doorkeeper


【解决方案1】:

我终于搞定了。我错过了关于 OAuth2 规范的一个重要方面,即客户端必须使用基本身份验证来标识自己。我在发帖前解决了添加,效果很好。

  before do
     page.driver.browser.authorize application.uid, application.secret
     page.driver.post access_uri, access_params
  end

【讨论】:

  • 嗨,已经好几年了。我能知道在哪里添加此代码吗?因为我是 ROR 的新手
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
相关资源
最近更新 更多