Rails Omniauth 缺少必需的参数:代码

Rails Omniauth missing required parameter: code

运行 rails c9.io 上的 3.2.18,我安装了 omniauth 和 omniauth-google-oauth2。我 运行 遇到了一个问题,我会在回调中收到 CSRF 错误,这听起来像是将 "provider_ignores_state: true" 添加到参数中可以防止这种情况发生,至少对于测试和开发而言。它确实摆脱了 CSRF 错误,但现在出现了一个新错误:

OAuth2::Error

invalid_request: Missing required parameter: code
{
  "error" : "invalid_request",
  "error_description" : "Missing required parameter: code"
}

我的config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
    provider :google_oauth2, "clientID", "clientSecret",
    scope: 'profile', image_aspect_ratio: 'square', image_size: 48, access_type: 'online', name: 'google', provider_ignores_state: true
end

跟踪的前几行:

oauth2 (1.0.0) lib/oauth2/client.rb:113:in `request'
oauth2 (1.0.0) lib/oauth2/client.rb:138:in `get_token'
oauth2 (1.0.0) lib/oauth2/strategy/auth_code.rb:29:in `get_token'
omniauth-oauth2 (1.3.1) lib/omniauth/strategies/oauth2.rb:93:in `build_access_token'
omniauth-google-oauth2 (0.2.6) lib/omniauth/strategies/google_oauth2.rb:77:in `custom_build_access_token'

编辑: 添加宝石的版本

/usr/local/rvm/gems/ruby-1.9.3-p547/gems/omniauth-1.2.2
/usr/local/rvm/gems/ruby-1.9.3-p547/gems/omniauth-google-oauth2-0.2.6

所以问题出在视图上!当它应该是 /auth/google 时,我试图使用 /auth/google/callback。 花了太长时间才弄清楚...