基本上,我的最后一次尝试是得到这个错误:
[: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有问题。
有什么想法吗?
发布于 2013-10-31 03:23:13
这是来自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中间件,如上面的示例所示。
https://stackoverflow.com/questions/19693900
复制相似问题