Omniauth:无法在策略中将response_type更改为“token”

时间:2011-06-15 07:10:59

标签: ruby-on-rails ruby omniauth oauth-2.0

我正在实施一项策略,以连接到使用oauth-plugin实现的OAuth提供程序。在“request_phase”函数中,我写道:

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

但是在发送的HTTP请求中,它有“...& response_type = code” 我按照其他示例在request_phase中设置了response_type,如使用SalesForce策略所示: https://github.com/quintonwall/omniauth-rails3-forcedotcom/wiki/Build-Mobile-Apps-in-the-Cloud-with-Omniauth,-Httparty-and-Force.com

请告知如何更改response_type。

由于 拉米

1 个答案:

答案 0 :(得分:1)

根据OAuth 2.0 documentation的规定,"code"是授权代码流的唯一有效值:

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

然后,您必须使用auth_code发出第二次令牌请求。您使用的提供程序可能仅支持此方法。

使用token作为响应类型的流是implicit grant流,它具有相当不同的用例,并且您尝试使用的提供程序可能不支持。