Omniauth: нельзя изменить тип response_type на «token» в стратегии - PullRequest
0 голосов
/ 15 июня 2011

Я реализую стратегию подключения к провайдеру OAuth, реализованную с помощью oauth-plugin. В функции request_phase я написал:

def request_phase
    options[:response_type] = 'token
    super
end

Но в отправленном HTTP-запросе он имеет "... & response_type = code" Я следовал за другими примерами, чтобы установить response_type в request_phase, как продемонстрировано, например, со стратегией SalesForce: https://github.com/quintonwall/omniauth-rails3-forcedotcom/wiki/Build-Mobile-Apps-in-the-Cloud-with-Omniauth,-Httparty-and-Force.com

Посоветуйте, пожалуйста, как изменить тип ответа.

Спасибо Рами

1 Ответ

1 голос
/ 30 августа 2011

Как указано в документации OAuth 2.0 , "code" является единственным допустимым значением для потока кода авторизации:

response_type
         REQUIRED.  Value MUST be set to "code".

Затем вам придется использовать auth_codeсделать второй запрос на токен.Возможно, используемый вами провайдер поддерживает только этот метод.

Поток, который использует token в качестве типа ответа, представляет собой поток неявного предоставления , который имеет довольно разные варианты использованияне поддерживается провайдером, с которым вы пытаетесь работать.

...