代码之家  ›  专栏  ›  技术社区  ›  harald

轨道3、Omniauth和乘客抛出路由错误

  •  3
  • harald  · 技术社区  · 14 年前

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

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

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

    当使用Webrick从我的开发机器运行时,这似乎是可行的,但是Facebook给出了一个错误,因为localhost:3000没有注册为应用程序。所以我把它上传到生产服务器进行测试。在这里,请求似乎完全绕过了机架层,最终在rails中抛出了路由错误,因为route s.rb中没有定义名为/auth/facebook的路由。

    服务器运行Apache2.2、Ruby1.8.7、Rails3.0.1、Rack1.2和Passenger3.0.0。有什么明显的我不见了吗?

    顺便说一句,该应用程序被安装到子URL,即 http://www.mydomain.net/myapp

    1 回复  |  直到 14 年前
        1
  •  5
  •   harald    14 年前

    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