4

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を使用して開発マシンから実行している場合は機能するようですが、localhost:3000がアプリケーションとして登録されていないため、Facebookでエラーが発生します。そこで、テストのために本番サーバーにアップロードします。ここでは、routes.rbに/ auth / facebookというルートが定義されていないため、リクエストはラックレイヤーを完全にバイパスし、最終的にRailsに到達してRoutingErrorをスローします。

サーバーは、apache 2.2、ruby 1.8.7、rails 3.0.1、rack 1.2、およびpassenger3.0.0を実行します。私が見逃している明らかなものはありますか?

ところで、アプリはサブURL、つまりhttp://www.mydomain.net/myappにインストールされます

4

1 に答える 1

6

自分で見つけた:

コードを次のように変更しました:

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

今ではそれは魅力のように機能します。

于 2010-10-26T14:47:08.067 に答える