首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Goliath + OmniAuth上的任何一个例子

Goliath + OmniAuth上的任何一个例子
EN

Stack Overflow用户
提问于 2013-10-30 21:13:00
回答 1查看 223关注 0票数 0

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

代码语言:javascript
复制
[:error, "bad URI(is not URI?): ://localhost:80/auth/twitter/auth/twitter"] 

当我浏览到

代码语言:javascript
复制
http://127.0.0.1/auth/twitter

这是我的歌利亚服务器

代码语言:javascript
复制
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有问题。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-31 03:23:13

这是来自env变量的一个小错误,它丢失了Rack::Request类的一些信息,从而构造了正确的路径。

修复非常简单:

代码语言:javascript
复制
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中间件,如上面的示例所示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19693900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档