【问题标题】:Rails 3, OmniAuth and passenger throws RoutingErrorRails 3、OmniAuth 和乘客抛出 RoutingError
【发布时间】:2011-04-29 22:07:37
【问题描述】:

我正在尝试使用 OmniAuth 从头开始​​构建一个新的 rails 3 应用程序。目前我只有一个完全空的应用程序,我在 Gemfile 中添加了 omniauth,并在 config/initializers 中添加了一个omniauth.rb,如下所示:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'APP_ID', 'APP_SECRET'
end

(当然,除了正确的应用程序 ID 和密码而不是占位符。)

这似乎在使用 Webrick 从我的开发机器上运行时有效,但是由于 localhost:3000 未注册为应用程序,因此 facebook 给出了错误。所以我将它上传到生产服务器进行测试。在这里,请求似乎完全绕过了机架层并最终出现在引发 RoutingError 的 rails 中,因为在 routes.rb 中没有定义名为 /auth/facebook 的路由。

服务器运行 apache 2.2、ruby 1.8.7、rails 3.0.1、rack 1.2 和passenger 3.0.0。我有什么明显的遗漏吗?

顺便说一句,应用程序安装到一个子网址,即http://www.mydomain.net/myapp

【问题讨论】:

    标签: ruby-on-rails-3 rack passenger omniauth


    【解决方案1】:

    自己发现的:

    将代码更改为:

    Rails.application.config.middleware.use OmniAuth::Builder do
      configure do |config|
        config.path_prefix = '/myapp/auth' if RAILS_ENV == 'production'
      end
    
      provider :facebook, 'APP_ID', 'APP_SECRET'
    end
    

    现在它就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多