Жетон доступа к двери

Я пытаюсь создать OAuth2-провайдера с Doorkeeper, и я хотел протестировать все существующие потоки, но застрял с первой попытки.

Я пытаюсь проверить поток кода авторизации. Все отлично работает при получении кода авторизации, но как только я пытаюсь получить токен доступа, что-то не так. Ниже упомянуты некоторые из шагов.

      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."}

Можете ли вы помочь мне понять, чего не хватает? Спасибо

1 ответ

Решение

Я наконец получил это работать. Я упустил один важный аспект в спецификациях OAuth2, где клиент должен идентифицировать себя, используя базовую аутентификацию. Я решил добавить его до публикации, и он работал довольно хорошо.

  before do
     page.driver.browser.authorize application.uid, application.secret
     page.driver.post access_uri, access_params
  end
Другие вопросы по тегам