关于Goliath + OmniAuth的任何例子

时间:2013-10-30 21:13:00

标签: ruby omniauth goliath

基本上我的最后一次尝试是我得到了这个错误:

[:error, "bad URI(is not URI?): ://localhost:80/auth/twitter/auth/twitter"] 

当我浏览

http://127.0.0.1/auth/twitter

这是我的巨人服务器

class Application < Goliath::API
  use(Rack::Session::Cookie
  use OmniAuth::Strategies::Developer
  use OmniAuth::Builder do
      provider :twitter, '..', '..'
      provider :facebook, '..', '..'
      provider :developer
  end
end

有趣的是/ auth / developer没有问题 - 但是twitter或facebook有。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这个来自env变量的小错误缺少Rack::Request类的一些信息构建正确的路径。

修复非常简单:

require 'omniauth'
require 'omniauth-twitter'
...
require 'goliath'

class Test < Goliath::API
  use Rack::Session::Cookie

  use Rack::Config do |env|
    env['rack.url_scheme'] ||= 'http'
    env['SCRIPT_NAME'] = nil
  end

  use OmniAuth::Strategies::Developer

  use OmniAuth::Builder do
      provider :twitter, '..', '..'
      provider :facebook, '..', '..'
      provider :developer
  end  

  def response env
    [200, {}, '']
  end
end

只需使用正确的参数包含Rack::Config中间件,如上例所示。